{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 文件读写"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "写入测试文件："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Writing test.txt\n"
     ]
    }
   ],
   "source": [
    "%%writefile test.txt\n",
    "this is a test file.\n",
    "hello world!\n",
    "python is good!\n",
    "today is a good day."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 读文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用 `open` 函数或者 `file` 函数来读文件，使用文件名的字符串作为输入参数："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "f = open('test.txt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "f = file('test.txt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这两种方式没有太大区别。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "默认以读的方式打开文件，如果文件不存在会报错。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以使用 `read` 方法来读入文件中的所有内容："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a test file.\n",
      "hello world!\n",
      "python is good!\n",
      "today is a good day.\n"
     ]
    }
   ],
   "source": [
    "text = f.read()\n",
    "print text"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "也可以按照行读入内容，`readlines` 方法返回一个列表，每个元素代表文件中每一行的内容："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['this is a test file.\\n', 'hello world!\\n', 'python is good!\\n', 'today is a good day.']\n"
     ]
    }
   ],
   "source": [
    "f = open('test.txt')\n",
    "lines = f.readlines()\n",
    "print lines"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用完文件之后，需要将文件关闭。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "事实上，我们可以将 `f` 放在一个循环中，得到它每一行的内容："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "this is a test file.\n",
      "\n",
      "hello world!\n",
      "\n",
      "python is good!\n",
      "\n",
      "today is a good day.\n"
     ]
    }
   ],
   "source": [
    "f = open('test.txt')\n",
    "for line in f:\n",
    "    print line\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "删除刚才创建的文件："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.remove('test.txt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 写文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们使用 `open` 函数的写入模式来写文件："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "f = open('myfile.txt', 'w')\n",
    "f.write('hello world!')\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用 `w` 模式时，如果文件不存在会被创建，我们可以查看是否真的写入成功："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world!\n"
     ]
    }
   ],
   "source": [
    "print open('myfile.txt').read()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "如果文件已经存在， `w` 模式会覆盖之前写的所有内容："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "another hello world!\n"
     ]
    }
   ],
   "source": [
    "f = open('myfile.txt', 'w')\n",
    "f.write('another hello world!')\n",
    "f.close()\n",
    "print open('myfile.txt').read()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "除了写入模式，还有追加模式 `a` ，追加模式不会覆盖之前已经写入的内容，而是在之后继续写入："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "another hello world!... and more\n"
     ]
    }
   ],
   "source": [
    "f = open('myfile.txt', 'a')\n",
    "f.write('... and more')\n",
    "f.close()\n",
    "print open('myfile.txt').read()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "写入结束之后一定要将文件关闭，否则可能出现内容没有完全写入文件中的情况。\n",
    "\n",
    "还可以使用读写模式 `w+`："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "world!\n"
     ]
    }
   ],
   "source": [
    "f = open('myfile.txt', 'w+')\n",
    "f.write('hello world!')\n",
    "f.seek(6)\n",
    "print f.read()\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这里 `f.seek(6)` 移动到文件的第6个字符处，然后 `f.read()` 读出剩下的内容。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.remove('myfile.txt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二进制文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "二进制读写模式 b："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "'\\x86H\\x93\\xe1\\xd8\\xef\\xc0\\xaa(\\x17\\xa9\\xc9\\xa51\\xf1\\x98'\n"
     ]
    }
   ],
   "source": [
    "import os\n",
    "f = open('binary.bin', 'wb')\n",
    "f.write(os.urandom(16))\n",
    "f.close()\n",
    "\n",
    "f = open('binary.bin', 'rb')\n",
    "print repr(f.read())\n",
    "f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.remove('binary.bin')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 换行符"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "不同操作系统的换行符可能不同：\n",
    "\n",
    "- `\\r`\n",
    "- `\\n`\n",
    "- `\\r\\n`\n",
    "\n",
    "使用 `U` 选项，可以将这三个统一看成 `\\n` 换行符。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 关闭文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在**Python**中，如果一个打开的文件不再被其他变量引用时，它会自动关闭这个文件。\n",
    "\n",
    "所以正常情况下，如果一个文件正常被关闭了，忘记调用文件的 `close` 方法不会有什么问题。\n",
    "\n",
    "关闭文件可以保证内容已经被写入文件，而不关闭可能会出现意想不到的结果："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "''\n"
     ]
    }
   ],
   "source": [
    "f = open('newfile.txt','w')\n",
    "f.write('hello world')\n",
    "g = open('newfile.txt', 'r')\n",
    "print repr(g.read())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "虽然这里写了内容，但是在关闭之前，这个内容并没有被写入磁盘。\n",
    "\n",
    "使用循环写入的内容也并不完整："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world: 0\n",
      "hello world: 1\n",
      "hello world: 2\n",
      "hello world: 3\n",
      "hello world: 4\n",
      "hello world: 5\n",
      "hello world: 6\n",
      "hello world: 7\n",
      "hello world: 8\n",
      "hello world: 9\n",
      "hello world: 10\n",
      "hello world: 11\n",
      "hello world: 12\n",
      "hello world: 13\n",
      "hello world: 14\n",
      "hello world: 15\n",
      "hello world: 16\n",
      "hello world: 17\n",
      "hello world: 18\n",
      "hello world: 19\n",
      "hello world: 20\n",
      "hello world: 21\n",
      "hello world: 22\n",
      "hello world: 23\n",
      "hello world: 24\n",
      "hello world: 25\n",
      "hello world: 26\n",
      "hello world: 27\n",
      "hello world: 28\n",
      "hello world: 29\n",
      "hello world: 30\n",
      "hello world: 31\n",
      "hello world: 32\n",
      "hello world: 33\n",
      "hello world: 34\n",
      "hello world: 35\n",
      "hello world: 36\n",
      "hello world: 37\n",
      "hello world: 38\n",
      "hello world: 39\n",
      "hello world: 40\n",
      "hello world: 41\n",
      "hello world: 42\n",
      "hello world: 43\n",
      "hello world: 44\n",
      "hello world: 45\n",
      "hello world: 46\n",
      "hello world: 47\n",
      "hello world: 48\n",
      "hello world: 49\n",
      "hello world: 50\n",
      "hello world: 51\n",
      "hello world: 52\n",
      "hello world: 53\n",
      "hello world: 54\n",
      "hello world: 55\n",
      "hello world: 56\n",
      "hello world: 57\n",
      "hello world: 58\n",
      "hello world: 59\n",
      "hello world: 60\n",
      "hello world: 61\n",
      "hello world: 62\n",
      "hello world: 63\n",
      "hello world: 64\n",
      "hello world: 65\n",
      "hello world: 66\n",
      "hello world: 67\n",
      "hello world: 68\n",
      "hello world: 69\n",
      "hello world: 70\n",
      "hello world: 71\n",
      "hello world: 72\n",
      "hello world: 73\n",
      "hello world: 74\n",
      "hello world: 75\n",
      "hello world: 76\n",
      "hello world: 77\n",
      "hello world: 78\n",
      "hello world: 79\n",
      "hello world: 80\n",
      "hello world: 81\n",
      "hello world: 82\n",
      "hello world: 83\n",
      "hello world: 84\n",
      "hello world: 85\n",
      "hello world: 86\n",
      "hello world: 87\n",
      "hello world: 88\n",
      "hello world: 89\n",
      "hello world: 90\n",
      "hello world: 91\n",
      "hello world: 92\n",
      "hello world: 93\n",
      "hello world: 94\n",
      "hello world: 95\n",
      "hello world: 96\n",
      "hello world: 97\n",
      "hello world: 98\n",
      "hello world: 99\n",
      "hello world: 100\n",
      "hello world: 101\n",
      "hello world: 102\n",
      "hello world: 103\n",
      "hello world: 104\n",
      "hello world: 105\n",
      "hello world: 106\n",
      "hello world: 107\n",
      "hello world: 108\n",
      "hello world: 109\n",
      "hello world: 110\n",
      "hello world: 111\n",
      "hello world: 112\n",
      "hello world: 113\n",
      "hello world: 114\n",
      "hello world: 115\n",
      "hello world: 116\n",
      "hello world: 117\n",
      "hello world: 118\n",
      "hello world: 119\n",
      "hello world: 120\n",
      "hello world: 121\n",
      "hello world: 122\n",
      "hello world: 123\n",
      "hello world: 124\n",
      "hello world: 125\n",
      "hello world: 126\n",
      "hello world: 127\n",
      "hello world: 128\n",
      "hello world: 129\n",
      "hello world: 130\n",
      "hello world: 131\n",
      "hello world: 132\n",
      "hello world: 133\n",
      "hello world: 134\n",
      "hello world: 135\n",
      "hello world: 136\n",
      "hello world: 137\n",
      "hello world: 138\n",
      "hello world: 139\n",
      "hello world: 140\n",
      "hello world: 141\n",
      "hello world: 142\n",
      "hello world: 143\n",
      "hello world: 144\n",
      "hello world: 145\n",
      "hello world: 146\n",
      "hello world: 147\n",
      "hello world: 148\n",
      "hello world: 149\n",
      "hello world: 150\n",
      "hello world: 151\n",
      "hello world: 152\n",
      "hello world: 153\n",
      "hello world: 154\n",
      "hello world: 155\n",
      "hello world: 156\n",
      "hello world: 157\n",
      "hello world: 158\n",
      "hello world: 159\n",
      "hello world: 160\n",
      "hello world: 161\n",
      "hello world: 162\n",
      "hello world: 163\n",
      "hello world: 164\n",
      "hello world: 165\n",
      "hello world: 166\n",
      "hello world: 167\n",
      "hello world: 168\n",
      "hello world: 169\n",
      "hello world: 170\n",
      "hello world: 171\n",
      "hello world: 172\n",
      "hello world: 173\n",
      "hello world: 174\n",
      "hello world: 175\n",
      "hello world: 176\n",
      "hello world: 177\n",
      "hello world: 178\n",
      "hello world: 179\n",
      "hello world: 180\n",
      "hello world: 181\n",
      "hello world: 182\n",
      "hello world: 183\n",
      "hello world: 184\n",
      "hello world: 185\n",
      "hello world: 186\n",
      "hello world: 187\n",
      "hello world: 188\n",
      "hello world: 189\n",
      "hello world: 190\n",
      "hello world: 191\n",
      "hello world: 192\n",
      "hello world: 193\n",
      "hello world: 194\n",
      "hello world: 195\n",
      "hello world: 196\n",
      "hello world: 197\n",
      "hello world: 198\n",
      "hello world: 199\n",
      "hello world: 200\n",
      "hello world: 201\n",
      "hello world: 202\n",
      "hello world: 203\n",
      "hello world: 204\n",
      "hello world: 205\n",
      "hello world: 206\n",
      "hello world: 207\n",
      "hello world: 208\n",
      "hello world: 209\n",
      "hello world: 210\n",
      "hello world: 211\n",
      "hello world: 212\n",
      "hello world: 213\n",
      "hello world: 214\n",
      "hello world: 215\n",
      "hello world: 216\n",
      "hello world: 217\n",
      "hello world: 218\n",
      "hello world: 219\n",
      "hello world: 220\n",
      "hello world: 221\n",
      "hello world: 222\n",
      "hello world: 223\n",
      "hello world: 224\n",
      "hello world: 225\n",
      "hello world: 226\n",
      "hello world: 227\n",
      "hello world: 228\n",
      "hello world: 229\n",
      "hello world: 230\n",
      "hello world: 231\n",
      "hello world: 232\n",
      "hello world: 233\n",
      "hello world: 234\n",
      "hello world: 235\n",
      "hello world: 236\n",
      "hello world: 237\n",
      "hello world: 238\n",
      "hello world: 239\n",
      "hello world: 240\n",
      "hello world: 241\n",
      "hello world: 242\n",
      "hello world: 243\n",
      "hello world: 244\n",
      "hello world: 245\n",
      "hello world: 246\n",
      "hello world: 247\n",
      "hello world: 248\n",
      "hello world: 249\n",
      "hello world: 250\n",
      "hello world: 251\n",
      "hello world: 252\n",
      "hello world: 253\n",
      "hello world: 254\n",
      "hello world: 255\n",
      "hello world: 256\n",
      "hello world: 257\n",
      "hello world: 258\n",
      "hello world: 259\n",
      "hello world: 260\n",
      "hello world: 261\n",
      "hello world: 262\n",
      "hello world: 263\n",
      "hello world: 264\n",
      "hello world: 265\n",
      "hello world: 266\n",
      "hello world: 267\n",
      "hello world: 268\n",
      "hello world: 269\n",
      "hello world: 270\n",
      "hello world: 271\n",
      "hello world: 272\n",
      "hello world: 273\n",
      "hello world: 274\n",
      "hello world: 275\n",
      "hello world: 276\n",
      "hello world: 277\n",
      "hello world: 278\n",
      "hello world: 279\n",
      "hello world: 280\n",
      "hello world: 281\n",
      "hello world: 282\n",
      "hello world: 283\n",
      "hello world: 284\n",
      "hello world: 285\n",
      "hello world: 286\n",
      "hello world: 287\n",
      "hello world: 288\n",
      "hello world: 289\n",
      "hello world: 290\n",
      "hello world: 291\n",
      "hello world: 292\n",
      "hello world: 293\n",
      "hello world: 294\n",
      "hello world: 295\n",
      "hello world: 296\n",
      "hello world: 297\n",
      "hello world: 298\n",
      "hello world: 299\n",
      "hello world: 300\n",
      "hello world: 301\n",
      "hello world: 302\n",
      "hello world: 303\n",
      "hello world: 304\n",
      "hello world: 305\n",
      "hello world: 306\n",
      "hello world: 307\n",
      "hello world: 308\n",
      "hello world: 309\n",
      "hello world: 310\n",
      "hello world: 311\n",
      "hello world: 312\n",
      "hello world: 313\n",
      "hello world: 314\n",
      "hello world: 315\n",
      "hello world: 316\n",
      "hello world: 317\n",
      "hello world: 318\n",
      "hello world: 319\n",
      "hello world: 320\n",
      "hello world: 321\n",
      "hello world: 322\n",
      "hello world: 323\n",
      "hello world: 324\n",
      "hello world: 325\n",
      "hello world: 326\n",
      "hello world: 327\n",
      "hello world: 328\n",
      "hello world: 329\n",
      "hello world: 330\n",
      "hello world: 331\n",
      "hello world: 332\n",
      "hello world: 333\n",
      "hello world: 334\n",
      "hello world: 335\n",
      "hello world: 336\n",
      "hello world: 337\n",
      "hello world: 338\n",
      "hello world: 339\n",
      "hello world: 340\n",
      "hello world: 341\n",
      "hello world: 342\n",
      "hello world: 343\n",
      "hello world: 344\n",
      "hello world: 345\n",
      "hello world: 346\n",
      "hello world: 347\n",
      "hello world: 348\n",
      "hello world: 349\n",
      "hello world: 350\n",
      "hello world: 351\n",
      "hello world: 352\n",
      "hello world: 353\n",
      "hello world: 354\n",
      "hello world: 355\n",
      "hello world: 356\n",
      "hello world: 357\n",
      "hello world: 358\n",
      "hello world: 359\n",
      "hello world: 360\n",
      "hello world: 361\n",
      "hello world: 362\n",
      "hello world: 363\n",
      "hello world: 364\n",
      "hello world: 365\n",
      "hello world: 366\n",
      "hello world: 367\n",
      "hello world: 368\n",
      "hello world: 369\n",
      "hello world: 370\n",
      "hello world: 371\n",
      "hello world: 372\n",
      "hello world: 373\n",
      "hello world: 374\n",
      "hello world: 375\n",
      "hello world: 376\n",
      "hello world: 377\n",
      "hello world: 378\n",
      "hello world: 379\n",
      "hello world: 380\n",
      "hello world: 381\n",
      "hello world: 382\n",
      "hello world: 383\n",
      "hello world: 384\n",
      "hello world: 385\n",
      "hello world: 386\n",
      "hello world: 387\n",
      "hello world: 388\n",
      "hello world: 389\n",
      "hello world: 390\n",
      "hello world: 391\n",
      "hello world: 392\n",
      "hello world: 393\n",
      "hello world: 394\n",
      "hello world: 395\n",
      "hello world: 396\n",
      "hello world: 397\n",
      "hello world: 398\n",
      "hello world: 399\n",
      "hello world: 400\n",
      "hello world: 401\n",
      "hello world: 402\n",
      "hello world: 403\n",
      "hello world: 404\n",
      "hello world: 405\n",
      "hello world: 406\n",
      "hello world: 407\n",
      "hello world: 408\n",
      "hello world: 409\n",
      "hello world: 410\n",
      "hello world: 411\n",
      "hello world: 412\n",
      "hello world: 413\n",
      "hello world: 414\n",
      "hello world: 415\n",
      "hello world: 416\n",
      "hello world: 417\n",
      "hello world: 418\n",
      "hello world: 419\n",
      "hello world: 420\n",
      "hello world: 421\n",
      "hello world: 422\n",
      "hello world: 423\n",
      "hello world: 424\n",
      "hello world: 425\n",
      "hello world: 426\n",
      "hello world: 427\n",
      "hello world: 428\n",
      "hello world: 429\n",
      "hello world: 430\n",
      "hello world: 431\n",
      "hello world: 432\n",
      "hello world: 433\n",
      "hello world: 434\n",
      "hello world: 435\n",
      "hello world: 436\n",
      "hello world: 437\n",
      "hello world: 438\n",
      "hello world: 439\n",
      "hello world: 440\n",
      "hello world: 441\n",
      "hello world: 442\n",
      "hello world: 443\n",
      "hello world: 444\n",
      "hello world: 445\n",
      "hello world: 446\n",
      "hello world: 447\n",
      "hello world: 448\n",
      "hello world: 449\n",
      "hello world: 450\n",
      "hello world: 451\n",
      "hello world: 452\n",
      "hello world: 453\n",
      "hello world: 454\n",
      "hello world: 455\n",
      "hello world: 456\n",
      "hello world: 457\n",
      "hello world: 458\n",
      "hello world: 459\n",
      "hello world: 460\n",
      "hello world: 461\n",
      "hello world: 462\n",
      "hello world: 463\n",
      "hello world: 464\n",
      "hello world: 465\n",
      "hello world: 466\n",
      "hello world: 467\n",
      "hello world: 468\n",
      "hello world: 469\n",
      "hello world: 470\n",
      "hello world: 471\n",
      "hello world: 472\n",
      "hello world: 473\n",
      "hello world: 474\n",
      "hello world: 475\n",
      "hello world: 476\n",
      "hello world: 477\n",
      "hello world: 478\n",
      "hello world: 479\n",
      "hello world: 480\n",
      "hello world: 481\n",
      "hello world: 482\n",
      "hello world: 483\n",
      "hello world: 484\n",
      "hello world: 485\n",
      "hello world: 486\n",
      "hello world: 487\n",
      "hello world: 488\n",
      "hello world: 489\n",
      "hello world: 490\n",
      "hello world: 491\n",
      "hello world: 492\n",
      "hello world: 493\n",
      "hello world: 494\n",
      "hello world: 495\n",
      "hello world: 496\n",
      "hello world: 497\n",
      "hello world: 498\n",
      "hello world: 499\n",
      "hello world: 500\n",
      "hello world: 501\n",
      "hello world: 502\n",
      "hello world: 503\n",
      "hello world: 504\n",
      "hello world: 505\n",
      "hello world: 506\n",
      "hello world: 507\n",
      "hello world: 508\n",
      "hello world: 509\n",
      "hello world: 510\n",
      "hello world: 511\n",
      "hello world: 512\n",
      "hello world: 513\n",
      "hello world: 514\n",
      "hello world: 515\n",
      "hello world: 516\n",
      "hello world: 517\n",
      "hello world: 518\n",
      "hello world: 519\n",
      "hello world: 520\n",
      "hello world: 521\n",
      "hello world: 522\n",
      "hello world: 523\n",
      "hello world: 524\n",
      "hello world: 525\n",
      "hello world: 526\n",
      "hello world: 527\n",
      "hello world: 528\n",
      "hello world: 529\n",
      "hello world: 530\n",
      "hello world: 531\n",
      "hello world: 532\n",
      "hello world: 533\n",
      "hello world: 534\n",
      "hello world: 535\n",
      "hello world: 536\n",
      "hello world: 537\n",
      "hello world: 538\n",
      "hello world: 539\n",
      "hello world: 540\n",
      "hello world: 541\n",
      "hello world: 542\n",
      "hello world: 543\n",
      "hello world: 544\n",
      "hello world: 545\n",
      "hello world: 546\n",
      "hello world: 547\n",
      "hello world: 548\n",
      "hello world: 549\n",
      "hello world: 550\n",
      "hello world: 551\n",
      "hello world: 552\n",
      "hello world: 553\n",
      "hello world: 554\n",
      "hello world: 555\n",
      "hello world: 556\n",
      "hello world: 557\n",
      "hello world: 558\n",
      "hello world: 559\n",
      "hello world: 560\n",
      "hello world: 561\n",
      "hello world: 562\n",
      "hello world: 563\n",
      "hello world: 564\n",
      "hello world: 565\n",
      "hello world: 566\n",
      "hello world: 567\n",
      "hello world: 568\n",
      "hello world: 569\n",
      "hello world: 570\n",
      "hello world: 571\n",
      "hello world: 572\n",
      "hello world: 573\n",
      "hello world: 574\n",
      "hello world: 575\n",
      "hello world: 576\n",
      "hello world: 577\n",
      "hello world: 578\n",
      "hello world: 579\n",
      "hello world: 580\n",
      "hello world: 581\n",
      "hello world: 582\n",
      "hello world: 583\n",
      "hello world: 584\n",
      "hello world: 585\n",
      "hello world: 586\n",
      "hello world: 587\n",
      "hello world: 588\n",
      "hello world: 589\n",
      "hello world: 590\n",
      "hello world: 591\n",
      "hello world: 592\n",
      "hello world: 593\n",
      "hello world: 594\n",
      "hello world: 595\n",
      "hello world: 596\n",
      "hello world: 597\n",
      "hello world: 598\n",
      "hello world: 599\n",
      "hello world: 600\n",
      "hello world: 601\n",
      "hello world: 602\n",
      "hello world: 603\n",
      "hello world: 604\n",
      "hello world: 605\n",
      "hello world: 606\n",
      "hello world: 607\n",
      "hello world: 608\n",
      "hello world: 609\n",
      "hello world: 610\n",
      "hello world: 611\n",
      "hello world: 612\n",
      "hello world: 613\n",
      "hello world: 614\n",
      "hello world: 615\n",
      "hello world: 616\n",
      "hello world: 617\n",
      "hello world: 618\n",
      "hello world: 619\n",
      "hello world: 620\n",
      "hello world: 621\n",
      "hello world: 622\n",
      "hello world: 623\n",
      "hello world: 624\n",
      "hello world: 625\n",
      "hello world: 626\n",
      "hello world: 627\n",
      "hello world: 628\n",
      "hello world: 629\n",
      "hello world: 630\n",
      "hello world: 631\n",
      "hello world: 632\n",
      "hello world: 633\n",
      "hello world: 634\n",
      "hello world: 635\n",
      "hello world: 636\n",
      "hello world: 637\n",
      "hello world: 638\n",
      "hello world: 639\n",
      "hello world: 640\n",
      "hello world: 641\n",
      "hello world: 642\n",
      "hello world: 643\n",
      "hello world: 644\n",
      "hello world: 645\n",
      "hello world: 646\n",
      "hello world: 647\n",
      "hello world: 648\n",
      "hello world: 649\n",
      "hello world: 650\n",
      "hello world: 651\n",
      "hello world: 652\n",
      "hello world: 653\n",
      "hello world: 654\n",
      "hello world: 655\n",
      "hello world: 656\n",
      "hello world: 657\n",
      "hello world: 658\n",
      "hello world: 659\n",
      "hello world: 660\n",
      "hello world: 661\n",
      "hello world: 662\n",
      "hello world: 663\n",
      "hello world: 664\n",
      "hello world: 665\n",
      "hello world: 666\n",
      "hello world: 667\n",
      "hello world: 668\n",
      "hello world: 669\n",
      "hello world: 670\n",
      "hello world: 671\n",
      "hello world: 672\n",
      "hello world: 673\n",
      "hello world: 674\n",
      "hello world: 675\n",
      "hello world: 676\n",
      "hello world: 677\n",
      "hello world: 678\n",
      "hello world: 679\n",
      "hello world: 680\n",
      "hello world: 681\n",
      "hello world: 682\n",
      "hello world: 683\n",
      "hello world: 684\n",
      "hello world: 685\n",
      "hello world: 686\n",
      "hello world: 687\n",
      "hello world: 688\n",
      "hello world: 689\n",
      "hello world: 690\n",
      "hello world: 691\n",
      "hello world: 692\n",
      "hello world: 693\n",
      "hello world: 694\n",
      "hello world: 695\n",
      "hello world: 696\n",
      "hello world: 697\n",
      "hello world: 698\n",
      "hello world: 699\n",
      "hello world: 700\n",
      "hello world: 701\n",
      "hello world: 702\n",
      "hello world: 703\n",
      "hello world: 704\n",
      "hello world: 705\n",
      "hello world: 706\n",
      "hello world: 707\n",
      "hello world: 708\n",
      "hello world: 709\n",
      "hello world: 710\n",
      "hello world: 711\n",
      "hello world: 712\n",
      "hello world: 713\n",
      "hello world: 714\n",
      "hello world: 715\n",
      "hello world: 716\n",
      "hello world: 717\n",
      "hello world: 718\n",
      "hello world: 719\n",
      "hello world: 720\n",
      "hello world: 721\n",
      "hello world: 722\n",
      "hello world: 723\n",
      "hello world: 724\n",
      "hello world: 725\n",
      "hello world: 726\n",
      "hello world: 727\n",
      "hello world: 728\n",
      "hello world: 729\n",
      "hello world: 730\n",
      "hello world: 731\n",
      "hello world: 732\n",
      "hello world: 733\n",
      "hello world: 734\n",
      "hello world: 735\n",
      "hello world: 736\n",
      "hello world: 737\n",
      "hello world: 738\n",
      "hello world: 739\n",
      "hello world: 740\n",
      "hello world: 741\n",
      "hello world: 742\n",
      "hello world: 743\n",
      "hello world: 744\n",
      "hello world: 745\n",
      "hello world: 746\n",
      "hello world: 747\n",
      "hello world: 748\n",
      "hello world: 749\n",
      "hello world: 750\n",
      "hello world: 751\n",
      "hello world: 752\n",
      "hello world: 753\n",
      "hello world: 754\n",
      "hello world: 755\n",
      "hello world: 756\n",
      "hello world: 757\n",
      "hello world: 758\n",
      "hello world: 759\n",
      "hello world: 760\n",
      "hello world: 761\n",
      "hello world: 762\n",
      "hello world: 763\n",
      "hello world: 764\n",
      "hello world: 765\n",
      "hello world: 766\n",
      "hello world: 767\n",
      "hello world: 768\n",
      "hello world: 769\n",
      "hello world: 770\n",
      "hello world: 771\n",
      "hello world: 772\n",
      "hello world: 773\n",
      "hello world: 774\n",
      "hello world: 775\n",
      "hello world: 776\n",
      "hello world: 777\n",
      "hello world: 778\n",
      "hello world: 779\n",
      "hello world: 780\n",
      "hello world: 781\n",
      "hello world: 782\n",
      "hello world: 783\n",
      "hello world: 784\n",
      "hello world: 785\n",
      "hello world: 786\n",
      "hello world: 787\n",
      "hello world: 788\n",
      "hello world: 789\n",
      "hello world: 790\n",
      "hello world: 791\n",
      "hello world: 792\n",
      "hello world: 793\n",
      "hello world: 794\n",
      "hello world: 795\n",
      "hello world: 796\n",
      "hello world: 797\n",
      "hello world: 798\n",
      "hello world: 799\n",
      "hello world: 800\n",
      "hello world: 801\n",
      "hello world: 802\n",
      "hello world: 803\n",
      "hello world: 804\n",
      "hello world: 805\n",
      "hello world: 806\n",
      "hello world: 807\n",
      "hello world: 808\n",
      "hello world: 809\n",
      "hello world: 810\n",
      "hello world: 811\n",
      "hello world: 812\n",
      "hello world: 813\n",
      "hello world: 814\n",
      "hello world: 815\n",
      "hello world: 816\n",
      "hello world: 817\n",
      "hello world: 818\n",
      "hello world: 819\n",
      "hello world: 820\n",
      "hello world: 821\n",
      "hello world: 822\n",
      "hello world: 823\n",
      "hello world: 824\n",
      "hello world: 825\n",
      "hello world: 826\n",
      "hello world: 827\n",
      "hello world: 828\n",
      "hello world: 829\n",
      "hello world: 830\n",
      "hello world: 831\n",
      "hello world: 832\n",
      "hello world: 833\n",
      "hello world: 834\n",
      "hello world: 835\n",
      "hello world: 836\n",
      "hello world: 837\n",
      "hello world: 838\n",
      "hello world: 839\n",
      "hello world: 840\n",
      "hello world: 841\n",
      "hello world: 842\n",
      "hello world: 843\n",
      "hello world: 844\n",
      "hello world: 845\n",
      "hello world: 846\n",
      "hello world: 847\n",
      "hello world: 848\n",
      "hello world: 849\n",
      "hello world: 850\n",
      "hello world: 851\n",
      "hello world: 852\n",
      "hello world: 853\n",
      "hello world: 854\n",
      "hello world: 855\n",
      "hello world: 856\n",
      "hello world: 857\n",
      "hello world: 858\n",
      "hello world: 859\n",
      "hello world: 860\n",
      "hello world: 861\n",
      "hello world: 862\n",
      "hello world: 863\n",
      "hello world: 864\n",
      "hello world: 865\n",
      "hello world: 866\n",
      "hello world: 867\n",
      "hello world: 868\n",
      "hello world: 869\n",
      "hello world: 870\n",
      "hello world: 871\n",
      "hello world: 872\n",
      "hello world: 873\n",
      "hello world: 874\n",
      "hello world: 875\n",
      "hello world: 876\n",
      "hello world: 877\n",
      "hello world: 878\n",
      "hello world: 879\n",
      "hello world: 880\n",
      "hello world: 881\n",
      "hello world: 882\n",
      "hello world: 883\n",
      "hello world: 884\n",
      "hello world: 885\n",
      "hello world: 886\n",
      "hello world: 887\n",
      "hello world: 888\n",
      "hello world: 889\n",
      "hello world: 890\n",
      "hello world: 891\n",
      "hello world: 892\n",
      "hello world: 893\n",
      "hello world: 894\n",
      "hello world: 895\n",
      "hello world: 896\n",
      "hello world: 897\n",
      "hello world: 898\n",
      "hello world: 899\n",
      "hello world: 900\n",
      "hello world: 901\n",
      "hello world: 902\n",
      "hello world: 903\n",
      "hello world: 904\n",
      "hello world: 905\n",
      "hello world: 906\n",
      "hello world: 907\n",
      "hello world: 908\n",
      "hello world: 909\n",
      "hello world: 910\n",
      "hello world: 911\n",
      "hello world: 912\n",
      "hello world: 913\n",
      "hello world: 914\n",
      "hello world: 915\n",
      "hello world: 916\n",
      "hello world: 917\n",
      "hello world: 918\n",
      "hello world: 919\n",
      "hello world: 920\n",
      "hello world: 921\n",
      "hello world: 922\n",
      "hello world: 923\n",
      "hello world: 924\n",
      "hello world: 925\n",
      "hello world: 926\n",
      "hello world: 927\n",
      "hello world: 928\n",
      "hello world: 929\n",
      "hello world: 930\n",
      "hello world: 931\n",
      "hello world: 932\n",
      "hello world: 933\n",
      "hello world: 934\n",
      "hello world: 935\n",
      "hello world: 936\n",
      "hello world: 937\n",
      "hello world: 938\n",
      "hello world: 939\n",
      "hello world: 940\n",
      "hello world: 941\n",
      "hello world: 942\n",
      "hello world: 943\n",
      "hello world: 944\n",
      "hello world: 945\n",
      "hello world: 946\n",
      "hello world: 947\n",
      "hello world: 948\n",
      "hello world: 949\n",
      "hello world: 950\n",
      "hello world: 951\n",
      "hello world: 952\n",
      "hello world: 953\n",
      "hello world: 954\n",
      "hello world: 955\n",
      "hello world: 956\n",
      "hello world: 957\n",
      "hello world: 958\n",
      "hello world: 959\n",
      "hello world: 960\n",
      "hello world: 961\n",
      "hello world: 962\n",
      "hello world: 963\n",
      "hello world: 964\n",
      "hello world: 965\n",
      "hello world: 966\n",
      "hello world: 967\n",
      "hello world: 968\n",
      "hello world: 969\n",
      "hello world: 970\n",
      "hello world: 971\n",
      "hello world: 972\n",
      "hello world: 973\n",
      "hello world: 974\n",
      "hello world: 975\n",
      "hello world: 976\n",
      "hello world: 977\n",
      "hello world: 978\n",
      "hello world: 979\n",
      "hello world: 980\n",
      "hello world: 981\n",
      "hello world: 982\n",
      "hello world: 983\n",
      "hello world: 984\n",
      "hello world: 985\n",
      "hello world: 986\n",
      "hello world: 987\n",
      "hello world: 988\n",
      "hello world: 989\n",
      "hello world: 990\n",
      "hello world: 991\n",
      "hello world: 992\n",
      "hello world: 993\n",
      "hello world: 994\n",
      "hello world: 995\n",
      "hello world: 996\n",
      "hello world: 997\n",
      "hello world: 998\n",
      "hello world: 999\n",
      "hello world: 1000\n",
      "hello world: 1001\n",
      "hello world: 1002\n",
      "hello world: 1003\n",
      "hello world: 1004\n",
      "hello world: 1005\n",
      "hello world: 1006\n",
      "hello world: 1007\n",
      "hello world: 1008\n",
      "hello world: 1009\n",
      "hello world: 1010\n",
      "hello world: 1011\n",
      "hello world: 1012\n",
      "hello world: 1013\n",
      "hello world: 1014\n",
      "hello world: 1015\n",
      "hello world: 1016\n",
      "hello world: 1017\n",
      "hello world: 1018\n",
      "hello world: 1019\n",
      "hello world: 1020\n",
      "hello world: 1021\n",
      "hello world: 1022\n",
      "hello world: 1023\n",
      "hello world: 1024\n",
      "hello world: 1025\n",
      "hello world: 1026\n",
      "hello world: 1027\n",
      "hello world: 1028\n",
      "hello world: 1029\n",
      "hello world: 1030\n",
      "hello world: 1031\n",
      "hello world: 1032\n",
      "hello world: 1033\n",
      "hello world: 1034\n",
      "hello world: 1035\n",
      "hello world: 1036\n",
      "hello world: 1037\n",
      "hello world: 1038\n",
      "hello world: 1039\n",
      "hello world: 1040\n",
      "hello world: 1041\n",
      "hello world: 1042\n",
      "hello world: 1043\n",
      "hello world: 1044\n",
      "hello world: 1045\n",
      "hello world: 1046\n",
      "hello world: 1047\n",
      "hello world: 1048\n",
      "hello world: 1049\n",
      "hello world: 1050\n",
      "hello world: 1051\n",
      "hello world: 1052\n",
      "hello world: 1053\n",
      "hello world: 1054\n",
      "hello world: 1055\n",
      "hello world: 1056\n",
      "hello world: 1057\n",
      "hello world: 1058\n",
      "hello world: 1059\n",
      "hello world: 1060\n",
      "hello world: 1061\n",
      "hello world: 1062\n",
      "hello world: 1063\n",
      "hello world: 1064\n",
      "hello world: 1065\n",
      "hello world: 1066\n",
      "hello world: 1067\n",
      "hello world: 1068\n",
      "hello world: 1069\n",
      "hello world: 1070\n",
      "hello world: 1071\n",
      "hello world: 1072\n",
      "hello world: 1073\n",
      "hello world: 1074\n",
      "hello world: 1075\n",
      "hello world: 1076\n",
      "hello world: 1077\n",
      "hello world: 1078\n",
      "hello world: 1079\n",
      "hello world: 1080\n",
      "hello world: 1081\n",
      "hello world: 1082\n",
      "hello world: 1083\n",
      "hello world: 1084\n",
      "hello world: 1085\n",
      "hello world: 1086\n",
      "hello world: 1087\n",
      "hello world: 1088\n",
      "hello world: 1089\n",
      "hello world: 1090\n",
      "hello world: 1091\n",
      "hello world: 1092\n",
      "hello world: 1093\n",
      "hello world: 1094\n",
      "hello world: 1095\n",
      "hello world: 1096\n",
      "hello world: 1097\n",
      "hello world: 1098\n",
      "hello world: 1099\n",
      "hello world: 1100\n",
      "hello world: 1101\n",
      "hello world: 1102\n",
      "hello world: 1103\n",
      "hello world: 1104\n",
      "hello world: 1105\n",
      "hello world: 1106\n",
      "hello world: 1107\n",
      "hello world: 1108\n",
      "hello world: 1109\n",
      "hello world: 1110\n",
      "hello world: 1111\n",
      "hello world: 1112\n",
      "hello world: 1113\n",
      "hello world: 1114\n",
      "hello world: 1115\n",
      "hello world: 1116\n",
      "hello world: 1117\n",
      "hello world: 1118\n",
      "hello world: 1119\n",
      "hello world: 1120\n",
      "hello world: 1121\n",
      "hello world: 1122\n",
      "hello world: 1123\n",
      "hello world: 1124\n",
      "hello world: 1125\n",
      "hello world: 1126\n",
      "hello world: 1127\n",
      "hello world: 1128\n",
      "hello world: 1129\n",
      "hello world: 1130\n",
      "hello world: 1131\n",
      "hello world: 1132\n",
      "hello world: 1133\n",
      "hello world: 1134\n",
      "hello world: 1135\n",
      "hello world: 1136\n",
      "hello world: 1137\n",
      "hello world: 1138\n",
      "hello world: 1139\n",
      "hello world: 1140\n",
      "hello world: 1141\n",
      "hello world: 1142\n",
      "hello world: 1143\n",
      "hello world: 1144\n",
      "hello world: 1145\n",
      "hello world: 1146\n",
      "hello world: 1147\n",
      "hello world: 1148\n",
      "hello world: 1149\n",
      "hello world: 1150\n",
      "hello world: 1151\n",
      "hello world: 1152\n",
      "hello world: 1153\n",
      "hello world: 1154\n",
      "hello world: 1155\n",
      "hello world: 1156\n",
      "hello world: 1157\n",
      "hello world: 1158\n",
      "hello world: 1159\n",
      "hello world: 1160\n",
      "hello world: 1161\n",
      "hello world: 1162\n",
      "hello world: 1163\n",
      "hello world: 1164\n",
      "hello world: 1165\n",
      "hello world: 1166\n",
      "hello world: 1167\n",
      "hello world: 1168\n",
      "hello world: 1169\n",
      "hello world: 1170\n",
      "hello world: 1171\n",
      "hello world: 1172\n",
      "hello world: 1173\n",
      "hello world: 1174\n",
      "hello world: 1175\n",
      "hello world: 1176\n",
      "hello world: 1177\n",
      "hello world: 1178\n",
      "hello world: 1179\n",
      "hello world: 1180\n",
      "hello world: 1181\n",
      "hello world: 1182\n",
      "hello world: 1183\n",
      "hello world: 1184\n",
      "hello world: 1185\n",
      "hello world: 1186\n",
      "hello world: 1187\n",
      "hello world: 1188\n",
      "hello world: 1189\n",
      "hello world: 1190\n",
      "hello world: 1191\n",
      "hello world: 1192\n",
      "hello world: 1193\n",
      "hello world: 1194\n",
      "hello world: 1195\n",
      "hello world: 1196\n",
      "hello world: 1197\n",
      "hello world: 1198\n",
      "hello world: 1199\n",
      "hello world: 1200\n",
      "hello world: 1201\n",
      "hello world: 1202\n",
      "hello world: 1203\n",
      "hello world: 1204\n",
      "hello world: 1205\n",
      "hello world: 1206\n",
      "hello world: 1207\n",
      "hello world: 1208\n",
      "hello world: 1209\n",
      "hello world: 1210\n",
      "hello world: 1211\n",
      "hello world: 1212\n",
      "hello world: 1213\n",
      "hello world: 1214\n",
      "hello world: 1215\n",
      "hello world: 1216\n",
      "hello world: 1217\n",
      "hello world: 1218\n",
      "hello world: 1219\n",
      "hello world: 1220\n",
      "hello world: 1221\n",
      "hello world: 1222\n",
      "hello world: 1223\n",
      "hello world: 1224\n",
      "hello world: 1225\n",
      "hello world: 1226\n",
      "hello world: 1227\n",
      "hello world: 1228\n",
      "hello world: 1229\n",
      "hello world: 1230\n",
      "hello world: 1231\n",
      "hello world: 1232\n",
      "hello world: 1233\n",
      "hello world: 1234\n",
      "hello world: 1235\n",
      "hello world: 1236\n",
      "hello world: 1237\n",
      "hello world: 1238\n",
      "hello world: 1239\n",
      "hello world: 1240\n",
      "hello world: 1241\n",
      "hello world: 1242\n",
      "hello world: 1243\n",
      "hello world: 1244\n",
      "hello world: 1245\n",
      "hello world: 1246\n",
      "hello world: 1247\n",
      "hello world: 1248\n",
      "hello world: 1249\n",
      "hello world: 1250\n",
      "hello world: 1251\n",
      "hello world: 1252\n",
      "hello world: 1253\n",
      "hello world: 1254\n",
      "hello world: 1255\n",
      "hello world: 1256\n",
      "hello world: 1257\n",
      "hello world: 1258\n",
      "hello world: 1259\n",
      "hello world: 1260\n",
      "hello world: 1261\n",
      "hello world: 1262\n",
      "hello world: 1263\n",
      "hello world: 1264\n",
      "hello world: 1265\n",
      "hello world: 1266\n",
      "hello world: 1267\n",
      "hello world: 1268\n",
      "hello world: 1269\n",
      "hello world: 1270\n",
      "hello world: 1271\n",
      "hello world: 1272\n",
      "hello world: 1273\n",
      "hello world: 1274\n",
      "hello world: 1275\n",
      "hello world: 1276\n",
      "hello world: 1277\n",
      "hello world: 1278\n",
      "hello world: 1279\n",
      "hello world: 1280\n",
      "hello world: 1281\n",
      "hello world: 1282\n",
      "hello world: 1283\n",
      "hello world: 1284\n",
      "hello world: 1285\n",
      "hello world: 1286\n",
      "hello world: 1287\n",
      "hello world: 1288\n",
      "hello world: 1289\n",
      "hello world: 1290\n",
      "hello world: 1291\n",
      "hello world: 1292\n",
      "hello world: 1293\n",
      "hello world: 1294\n",
      "hello world: 1295\n",
      "hello world: 1296\n",
      "hello world: 1297\n",
      "hello world: 1298\n",
      "hello world: 1299\n",
      "hello world: 1300\n",
      "hello world: 1301\n",
      "hello world: 1302\n",
      "hello world: 1303\n",
      "hello world: 1304\n",
      "hello world: 1305\n",
      "hello world: 1306\n",
      "hello world: 1307\n",
      "hello world: 1308\n",
      "hello world: 1309\n",
      "hello world: 1310\n",
      "hello world: 1311\n",
      "hello world: 1312\n",
      "hello world: 1313\n",
      "hello world: 1314\n",
      "hello world: 1315\n",
      "hello world: 1316\n",
      "hello world: 1317\n",
      "hello world: 1318\n",
      "hello world: 1319\n",
      "hello world: 1320\n",
      "hello world: 1321\n",
      "hello world: 1322\n",
      "hello world: 1323\n",
      "hello world: 1324\n",
      "hello world: 1325\n",
      "hello world: 1326\n",
      "hello world: 1327\n",
      "hello world: 1328\n",
      "hello world: 1329\n",
      "hello world: 1330\n",
      "hello world: 1331\n",
      "hello world: 1332\n",
      "hello world: 1333\n",
      "hello world: 1334\n",
      "hello world: 1335\n",
      "hello world: 1336\n",
      "hello world: 1337\n",
      "hello world: 1338\n",
      "hello world: 1339\n",
      "hello world: 1340\n",
      "hello world: 1341\n",
      "hello world: 1342\n",
      "hello world: 1343\n",
      "hello world: 1344\n",
      "hello world: 1345\n",
      "hello world: 1346\n",
      "hello world: 1347\n",
      "hello world: 1348\n",
      "hello world: 1349\n",
      "hello world: 1350\n",
      "hello world: 1351\n",
      "hello world: 1352\n",
      "hello world: 1353\n",
      "hello world: 1354\n",
      "hello world: 1355\n",
      "hello world: 1356\n",
      "hello world: 1357\n",
      "hello world: 1358\n",
      "hello world: 1359\n",
      "hello world: 1360\n",
      "hello world: 1361\n",
      "hello world: 1362\n",
      "hello world: 1363\n",
      "hello world: 1364\n",
      "hello world: 1365\n",
      "hello world: 1366\n",
      "hello world: 1367\n",
      "hello world: 1368\n",
      "hello world: 1369\n",
      "hello world: 1370\n",
      "hello world: 1371\n",
      "hello world: 1372\n",
      "hello world: 1373\n",
      "hello world: 1374\n",
      "hello world: 1375\n",
      "hello world: 1376\n",
      "hello world: 1377\n",
      "hello world: 1378\n",
      "hello world: 1379\n",
      "hello world: 1380\n",
      "hello world: 1381\n",
      "hello world: 1382\n",
      "hello world: 1383\n",
      "hello world: 1384\n",
      "hello world: 1385\n",
      "hello world: 1386\n",
      "hello world: 1387\n",
      "hello world: 1388\n",
      "hello world: 1389\n",
      "hello world: 1390\n",
      "hello world: 1391\n",
      "hello world: 1392\n",
      "hello world: 1393\n",
      "hello world: 1394\n",
      "hello world: 1395\n",
      "hello world: 1396\n",
      "hello world: 1397\n",
      "hello world: 1398\n",
      "hello world: 1399\n",
      "hello world: 1400\n",
      "hello world: 1401\n",
      "hello world: 1402\n",
      "hello world: 1403\n",
      "hello world: 1404\n",
      "hello world: 1405\n",
      "hello world: 1406\n",
      "hello world: 1407\n",
      "hello world: 1408\n",
      "hello world: 1409\n",
      "hello world: 1410\n",
      "hello world: 1411\n",
      "hello world: 1412\n",
      "hello world: 1413\n",
      "hello world: 1414\n",
      "hello world: 1415\n",
      "hello world: 1416\n",
      "hello world: 1417\n",
      "hello world: 1418\n",
      "hello world: 1419\n",
      "hello world: 1420\n",
      "hello world: 1421\n",
      "hello world: 1422\n",
      "hello world: 1423\n",
      "hello world: 1424\n",
      "hello world: 1425\n",
      "hello world: 1426\n",
      "hello world: 1427\n",
      "hello world: 1428\n",
      "hello world: 1429\n",
      "hello world: 1430\n",
      "hello world: 1431\n",
      "hello world: 1432\n",
      "hello world: 1433\n",
      "hello world: 1434\n",
      "hello world: 1435\n",
      "hello world: 1436\n",
      "hello world: 1437\n",
      "hello world: 1438\n",
      "hello world: 1439\n",
      "hello world: 1440\n",
      "hello world: 1441\n",
      "hello world: 1442\n",
      "hello world: 1443\n",
      "hello world: 1444\n",
      "hello world: 1445\n",
      "hello world: 1446\n",
      "hello world: 1447\n",
      "hello world: 1448\n",
      "hello world: 1449\n",
      "hello world: 1450\n",
      "hello world: 1451\n",
      "hello world: 1452\n",
      "hello world: 1453\n",
      "hello world: 1454\n",
      "hello world: 1455\n",
      "hello world: 1456\n",
      "hello world: 1457\n",
      "hello world: 1458\n",
      "hello world: 1459\n",
      "hello world: 1460\n",
      "hello world: 1461\n",
      "hello world: 1462\n",
      "hello world: 1463\n",
      "hello world: 1464\n",
      "hello world: 1465\n",
      "hello world: 1466\n",
      "hello world: 1467\n",
      "hello world: 1468\n",
      "hello world: 1469\n",
      "hello world: 1470\n",
      "hello world: 1471\n",
      "hello world: 1472\n",
      "hello world: 1473\n",
      "hello world: 1474\n",
      "hello world: 1475\n",
      "hello world: 1476\n",
      "hello world: 1477\n",
      "hello world: 1478\n",
      "hello world: 1479\n",
      "hello world: 1480\n",
      "hello world: 1481\n",
      "hello world: 1482\n",
      "hello world: 1483\n",
      "hello world: 1484\n",
      "hello world: 1485\n",
      "hello world: 1486\n",
      "hello world: 1487\n",
      "hello world: 1488\n",
      "hello world: 1489\n",
      "hello world: 1490\n",
      "hello world: 1491\n",
      "hello world: 1492\n",
      "hello world: 1493\n",
      "hello world: 1494\n",
      "hello world: 1495\n",
      "hello world: 1496\n",
      "hello world: 1497\n",
      "hello world: 1498\n",
      "hello world: 1499\n",
      "hello world: 1500\n",
      "hello world: 1501\n",
      "hello world: 1502\n",
      "hello world: 1503\n",
      "hello world: 1504\n",
      "hello world: 1505\n",
      "hello world: 1506\n",
      "hello world: 1507\n",
      "hello world: 1508\n",
      "hello world: 1509\n",
      "hello world: 1510\n",
      "hello world: 1511\n",
      "hello world: 1512\n",
      "hello world: 1513\n",
      "hello world: 1514\n",
      "hello world: 1515\n",
      "hello world: 1516\n",
      "hello world: 1517\n",
      "hello world: 1518\n",
      "hello world: 1519\n",
      "hello world: 1520\n",
      "hello world: 1521\n",
      "hello world: 1522\n",
      "hello world: 1523\n",
      "hello world: 1524\n",
      "hello world: 1525\n",
      "hello world: 1526\n",
      "hello world: 1527\n",
      "hello world: 1528\n",
      "hello world: 1529\n",
      "hello world: 1530\n",
      "hello world: 1531\n",
      "hello world: 1532\n",
      "hello world: 1533\n",
      "hello world: 1534\n",
      "hello world: 1535\n",
      "hello world: 1536\n",
      "hello world: 1537\n",
      "hello world: 1538\n",
      "hello world: 1539\n",
      "hello world: 1540\n",
      "hello world: 1541\n",
      "hello world: 1542\n",
      "hello world: 1543\n",
      "hello world: 1544\n",
      "hello world: 1545\n",
      "hello world: 1546\n",
      "hello world: 1547\n",
      "hello world: 1548\n",
      "hello world: 1549\n",
      "hello world: 1550\n",
      "hello world: 1551\n",
      "hello world: 1552\n",
      "hello world: 1553\n",
      "hello world: 1554\n",
      "hello world: 1555\n",
      "hello world: 1556\n",
      "hello world: 1557\n",
      "hello world: 1558\n",
      "hello world: 1559\n",
      "hello world: 1560\n",
      "hello world: 1561\n",
      "hello world: 1562\n",
      "hello world: 1563\n",
      "hello world: 1564\n",
      "hello world: 1565\n",
      "hello world: 1566\n",
      "hello world: 1567\n",
      "hello world: 1568\n",
      "hello world: 1569\n",
      "hello world: 1570\n",
      "hello world: 1571\n",
      "hello world: 1572\n",
      "hello world: 1573\n",
      "hello world: 1574\n",
      "hello world: 1575\n",
      "hello world: 1576\n",
      "hello world: 1577\n",
      "hello world: 1578\n",
      "hello world: 1579\n",
      "hello world: 1580\n",
      "hello world: 1581\n",
      "hello world: 1582\n",
      "hello world: 1583\n",
      "hello world: 1584\n",
      "hello world: 1585\n",
      "hello world: 1586\n",
      "hello world: 1587\n",
      "hello world: 1588\n",
      "hello world: 1589\n",
      "hello world: 1590\n",
      "hello world: 1591\n",
      "hello world: 1592\n",
      "hello world: 1593\n",
      "hello world: 1594\n",
      "hello world: 1595\n",
      "hello world: 1596\n",
      "hello world: 1597\n",
      "hello world: 1598\n",
      "hello world: 1599\n",
      "hello world: 1600\n",
      "hello world: 1601\n",
      "hello world: 1602\n",
      "hello world: 1603\n",
      "hello world: 1604\n",
      "hello world: 1605\n",
      "hello world: 1606\n",
      "hello world: 1607\n",
      "hello world: 1608\n",
      "hello world: 1609\n",
      "hello world: 1610\n",
      "hello world: 1611\n",
      "hello world: 1612\n",
      "hello world: 1613\n",
      "hello world: 1614\n",
      "hello world: 1615\n",
      "hello world: 1616\n",
      "hello world: 1617\n",
      "hello world: 1618\n",
      "hello world: 1619\n",
      "hello world: 1620\n",
      "hello world: 1621\n",
      "hello world: 1622\n",
      "hello world: 1623\n",
      "hello world: 1624\n",
      "hello world: 1625\n",
      "hello world: 1626\n",
      "hello world: 1627\n",
      "hello world: 1628\n",
      "hello world: 1629\n",
      "hello world: 1630\n",
      "hello world: 1631\n",
      "hello world: 1632\n",
      "hello world: 1633\n",
      "hello world: 1634\n",
      "hello world: 1635\n",
      "hello world: 1636\n",
      "hello world: 1637\n",
      "hello world: 1638\n",
      "hello world: 1639\n",
      "hello world: 1640\n",
      "hello world: 1641\n",
      "hello world: 1642\n",
      "hello world: 1643\n",
      "hello world: 1644\n",
      "hello world: 1645\n",
      "hello world: 1646\n",
      "hello world: 1647\n",
      "hello world: 1648\n",
      "hello world: 1649\n",
      "hello world: 1650\n",
      "hello world: 1651\n",
      "hello world: 1652\n",
      "hello world: 1653\n",
      "hello world: 1654\n",
      "hello world: 1655\n",
      "hello world: 1656\n",
      "hello world: 1657\n",
      "hello world: 1658\n",
      "hello world: 1659\n",
      "hello world: 1660\n",
      "hello world: 1661\n",
      "hello world: 1662\n",
      "hello world: 1663\n",
      "hello world: 1664\n",
      "hello world: 1665\n",
      "hello world: 1666\n",
      "hello world: 1667\n",
      "hello world: 1668\n",
      "hello world: 1669\n",
      "hello world: 1670\n",
      "hello world: 1671\n",
      "hello world: 1672\n",
      "hello world: 1673\n",
      "hello world: 1674\n",
      "hello world: 1675\n",
      "hello world: 1676\n",
      "hello world: 1677\n",
      "hello world: 1678\n",
      "hello world: 1679\n",
      "hello world: 1680\n",
      "hello world: 1681\n",
      "hello world: 1682\n",
      "hello world: 1683\n",
      "hello world: 1684\n",
      "hello world: 1685\n",
      "hello world: 1686\n",
      "hello world: 1687\n",
      "hello world: 1688\n",
      "hello world: 1689\n",
      "hello world: 1690\n",
      "hello world: 1691\n",
      "hello world: 1692\n",
      "hello world: 1693\n",
      "hello world: 1694\n",
      "hello world: 1695\n",
      "hello world: 1696\n",
      "hello world: 1697\n",
      "hello world: 1698\n",
      "hello world: 1699\n",
      "hello world: 1700\n",
      "hello world: 1701\n",
      "hello world: 1702\n",
      "hello world: 1703\n",
      "hello world: 1704\n",
      "hello world: 1705\n",
      "hello world: 1706\n",
      "hello world: 1707\n",
      "hello world: 1708\n",
      "hello world: 1709\n",
      "hello world: 1710\n",
      "hello world: 1711\n",
      "hello world: 1712\n",
      "hello world: 1713\n",
      "hello world: 1714\n",
      "hello world: 1715\n",
      "hello world: 1716\n",
      "hello world: 1717\n",
      "hello world: 1718\n",
      "hello world: 1719\n",
      "hello world: 1720\n",
      "hello world: 1721\n",
      "hello world: 1722\n",
      "hello world: 1723\n",
      "hello world: 1724\n",
      "hello world: 1725\n",
      "hello world: 1726\n",
      "hello world: 1727\n",
      "hello world: 1728\n",
      "hello world: 1729\n",
      "hello world: 1730\n",
      "hello world: 1731\n",
      "hello world: 1732\n",
      "hello world: 1733\n",
      "hello world: 1734\n",
      "hello world: 1735\n",
      "hello world: 1736\n",
      "hello world: 1737\n",
      "hello world: 1738\n",
      "hello world: 1739\n",
      "hello world: 1740\n",
      "hello world: 1741\n",
      "hello world: 1742\n",
      "hello world: 1743\n",
      "hello world: 1744\n",
      "hello world: 1745\n",
      "hello world: 1746\n",
      "hello world: 1747\n",
      "hello world: 1748\n",
      "hello world: 1749\n",
      "hello world: 1750\n",
      "hello world: 1751\n",
      "hello world: 1752\n",
      "hello world: 1753\n",
      "hello world: 1754\n",
      "hello world: 1755\n",
      "hello world: 1756\n",
      "hello world: 1757\n",
      "hello world: 1758\n",
      "hello world: 1759\n",
      "hello world: 1760\n",
      "hello world: 1761\n",
      "hello world: 1762\n",
      "hello world: 1763\n",
      "hello world: 1764\n",
      "hello world: 1765\n",
      "hello world: 1766\n",
      "hello world: 1767\n",
      "hello world: 1768\n",
      "hello world: 1769\n",
      "hello world: 1770\n",
      "hello world: 1771\n",
      "hello world: 1772\n",
      "hello world: 1773\n",
      "hello world: 1774\n",
      "hello world: 1775\n",
      "hello world: 1776\n",
      "hello world: 1777\n",
      "hello world: 1778\n",
      "hello world: 1779\n",
      "hello world: 1780\n",
      "hello world: 1781\n",
      "hello world: 1782\n",
      "hello world: 1783\n",
      "hello world: 1784\n",
      "hello world: 1785\n",
      "hello world: 1786\n",
      "hello world: 1787\n",
      "hello world: 1788\n",
      "hello world: 1789\n",
      "hello world: 1790\n",
      "hello world: 1791\n",
      "hello world: 1792\n",
      "hello world: 1793\n",
      "hello world: 1794\n",
      "hello world: 1795\n",
      "hello world: 1796\n",
      "hello world: 1797\n",
      "hello world: 1798\n",
      "hello world: 1799\n",
      "hello world: 1800\n",
      "hello world: 1801\n",
      "hello world: 1802\n",
      "hello world: 1803\n",
      "hello world: 1804\n",
      "hello world: 1805\n",
      "hello world: 1806\n",
      "hello world: 1807\n",
      "hello world: 1808\n",
      "hello world: 1809\n",
      "hello world: 1810\n",
      "hello world: 1811\n",
      "hello world: 1812\n",
      "hello world: 1813\n",
      "hello world: 1814\n",
      "hello world: 1815\n",
      "hello world: 1816\n",
      "hello world: 1817\n",
      "hello world: 1818\n",
      "hello world: 1819\n",
      "hello world: 1820\n",
      "hello world: 1821\n",
      "hello world: 1822\n",
      "hello world: 1823\n",
      "hello world: 1824\n",
      "hello world: 1825\n",
      "hello world: 1826\n",
      "hello world: 1827\n",
      "hello world: 1828\n",
      "hello world: 1829\n",
      "hello world: 1830\n",
      "hello world: 1831\n",
      "hello world: 1832\n",
      "hello world: 1833\n",
      "hello world: 1834\n",
      "hello world: 1835\n",
      "hello world: 1836\n",
      "hello world: 1837\n",
      "hello world: 1838\n",
      "hello world: 1839\n",
      "hello world: 1840\n",
      "hello world: 1841\n",
      "hello world: 1842\n",
      "hello world: 1843\n",
      "hello world: 1844\n",
      "hello world: 1845\n",
      "hello world: 1846\n",
      "hello world: 1847\n",
      "hello world: 1848\n",
      "hello world: 1849\n",
      "hello world: 1850\n",
      "hello world: 1851\n",
      "hello world: 1852\n",
      "hello world: 1853\n",
      "hello world: 1854\n",
      "hello world: 1855\n",
      "hello world: 1856\n",
      "hello world: 1857\n",
      "hello world: 1858\n",
      "hello world: 1859\n",
      "hello world: 1860\n",
      "hello world: 1861\n",
      "hello world: 1862\n",
      "hello world: 1863\n",
      "hello world: 1864\n",
      "hello world: 1865\n",
      "hello world: 1866\n",
      "hello world: 1867\n",
      "hello world: 1868\n",
      "hello world: 1869\n",
      "hello world: 1870\n",
      "hello world: 1871\n",
      "hello world: 1872\n",
      "hello world: 1873\n",
      "hello world: 1874\n",
      "hello world: 1875\n",
      "hello world: 1876\n",
      "hello world: 1877\n",
      "hello world: 1878\n",
      "hello world: 1879\n",
      "hello world: 1880\n",
      "hello world: 1881\n",
      "hello world: 1882\n",
      "hello world: 1883\n",
      "hello world: 1884\n",
      "hello world: 1885\n",
      "hello world: 1886\n",
      "hello world: 1887\n",
      "hello world: 1888\n",
      "hello world: 1889\n",
      "hello world: 1890\n",
      "hello world: 1891\n",
      "hello world: 1892\n",
      "hello world: 1893\n",
      "hello world: 1894\n",
      "hello world: 1895\n",
      "hello world: 1896\n",
      "hello world: 1897\n",
      "hello world: 1898\n",
      "hello world: 1899\n",
      "hello world: 1900\n",
      "hello world: 1901\n",
      "hello world: 1902\n",
      "hello world: 1903\n",
      "hello world: 1904\n",
      "hello world: 1905\n",
      "hello world: 1906\n",
      "hello world: 1907\n",
      "hello world: 1908\n",
      "hello world: 1909\n",
      "hello world: 1910\n",
      "hello world: 1911\n",
      "hello world: 1912\n",
      "hello world: 1913\n",
      "hello world: 1914\n",
      "hello world: 1915\n",
      "hello world: 1916\n",
      "hello world: 1917\n",
      "hello world: 1918\n",
      "hello world: 1919\n",
      "hello world: 1920\n",
      "hello world: 1921\n",
      "hello world: 1922\n",
      "hello world: 1923\n",
      "hello world: 1924\n",
      "hello world: 1925\n",
      "hello world: 1926\n",
      "hello world: 1927\n",
      "hello world: 1928\n",
      "hello world: 1929\n",
      "hello world: 1930\n",
      "hello world: 1931\n",
      "hello world: 1932\n",
      "hello world: 1933\n",
      "hello world: 1934\n",
      "hello world: 1935\n",
      "hello world: 1936\n",
      "hello world: 1937\n",
      "hello world: 1938\n",
      "hello world: 1939\n",
      "hello world: 1940\n",
      "hello world: 1941\n",
      "hello world: 1942\n",
      "hello world: 1943\n",
      "hello world: 1944\n",
      "hello world: 1945\n",
      "hello world: 1946\n",
      "hello world: 1947\n",
      "hello world: 1948\n",
      "hello world: 1949\n",
      "hello world: 1950\n",
      "hello world: 1951\n",
      "hello world: 1952\n",
      "hello world: 1953\n",
      "hello world: 1954\n",
      "hello world: 1955\n",
      "hello world: 1956\n",
      "hello world: 1957\n",
      "hello world: 1958\n",
      "hello world: 1959\n",
      "hello world: 1960\n",
      "hello world: 1961\n",
      "hello world: 1962\n",
      "hello world: 1963\n",
      "hello world: 1964\n",
      "hello world: 1965\n",
      "hello world: 1966\n",
      "hello world: 1967\n",
      "hello world: 1968\n",
      "hello world: 1969\n",
      "hello world: 1970\n",
      "hello world: 1971\n",
      "hello world: 1972\n",
      "hello world: 1973\n",
      "hello world: 1974\n",
      "hello world: 1975\n",
      "hello world: 1976\n",
      "hello world: 1977\n",
      "hello world: 1978\n",
      "hello world: 1979\n",
      "hello world: 1980\n",
      "hello world: 1981\n",
      "hello world: 1982\n",
      "hello world: 1983\n",
      "hello world: 1984\n",
      "hello world: 1985\n",
      "hello world: 1986\n",
      "hello world: 1987\n",
      "hello world: 1988\n",
      "hello world: 1989\n",
      "hello world: 1990\n",
      "hello world: 1991\n",
      "hello world: 1992\n",
      "hello world: 1993\n",
      "hello world: 1994\n",
      "hello world: 1995\n",
      "hello world: 1996\n",
      "hello world: 1997\n",
      "hello world: 1998\n",
      "hello world: 1999\n",
      "hello world: 2000\n",
      "hello world: 2001\n",
      "hello world: 2002\n",
      "hello world: 2003\n",
      "hello world: 2004\n",
      "hello world: 2005\n",
      "hello world: 2006\n",
      "hello world: 2007\n",
      "hello world: 2008\n",
      "hello world: 2009\n",
      "hello world: 2010\n",
      "hello world: 2011\n",
      "hello world: 2012\n",
      "hello world: 2013\n",
      "hello world: 2014\n",
      "hello world: 2015\n",
      "hello world: 2016\n",
      "hello world: 2017\n",
      "hello world: 2018\n",
      "hello world: 2019\n",
      "hello world: 2020\n",
      "hello world: 2021\n",
      "hello world: 2022\n",
      "hello world: 2023\n",
      "hello world: 2024\n",
      "hello world: 2025\n",
      "hello world: 2026\n",
      "hello world: 2027\n",
      "hello world: 2028\n",
      "hello world: 2029\n",
      "hello world: 2030\n",
      "hello world: 2031\n",
      "hello world: 2032\n",
      "hello world: 2033\n",
      "hello world: 2034\n",
      "hello world: 2035\n",
      "hello world: 2036\n",
      "hello world: 2037\n",
      "hello world: 2038\n",
      "hello world: 2039\n",
      "hello world: 2040\n",
      "hello world: 2041\n",
      "hello world: 2042\n",
      "hello world: 2043\n",
      "hello world: 2044\n",
      "hello world: 2045\n",
      "hello world: 2046\n",
      "hello world: 2047\n",
      "hello world: 2048\n",
      "hello world: 2049\n",
      "hello world: 2050\n",
      "hello world: 2051\n",
      "hello world: 2052\n",
      "hello world: 2053\n",
      "hello world: 2054\n",
      "hello world: 2055\n",
      "hello world: 2056\n",
      "hello world: 2057\n",
      "hello world: 2058\n",
      "hello world: 2059\n",
      "hello world: 2060\n",
      "hello world: 2061\n",
      "hello world: 2062\n",
      "hello world: 2063\n",
      "hello world: 2064\n",
      "hello world: 2065\n",
      "hello world: 2066\n",
      "hello world: 2067\n",
      "hello world: 2068\n",
      "hello world: 2069\n",
      "hello world: 2070\n",
      "hello world: 2071\n",
      "hello world: 2072\n",
      "hello world: 2073\n",
      "hello world: 2074\n",
      "hello world: 2075\n",
      "hello world: 2076\n",
      "hello world: 2077\n",
      "hello world: 2078\n",
      "hello world: 2079\n",
      "hello world: 2080\n",
      "hello world: 2081\n",
      "hello world: 2082\n",
      "hello world: 2083\n",
      "hello world: 2084\n",
      "hello world: 2085\n",
      "hello world: 2086\n",
      "hello world: 2087\n",
      "hello world: 2088\n",
      "hello world: 2089\n",
      "hello world: 2090\n",
      "hello world: 2091\n",
      "hello world: 2092\n",
      "hello world: 2093\n",
      "hello world: 2094\n",
      "hello world: 2095\n",
      "hello world: 2096\n",
      "hello world: 2097\n",
      "hello world: 2098\n",
      "hello world: 2099\n",
      "hello world: 2100\n",
      "hello world: 2101\n",
      "hello world: 2102\n",
      "hello world: 2103\n",
      "hello world: 2104\n",
      "hello world: 2105\n",
      "hello world: 2106\n",
      "hello world: 2107\n",
      "hello world: 2108\n",
      "hello world: 2109\n",
      "hello world: 2110\n",
      "hello world: 2111\n",
      "hello world: 2112\n",
      "hello world: 2113\n",
      "hello world: 2114\n",
      "hello world: 2115\n",
      "hello world: 2116\n",
      "hello world: 2117\n",
      "hello world: 2118\n",
      "hello world: 2119\n",
      "hello world: 2120\n",
      "hello world: 2121\n",
      "hello world: 2122\n",
      "hello world: 2123\n",
      "hello world: 2124\n",
      "hello world: 2125\n",
      "hello world: 2126\n",
      "hello world: 2127\n",
      "hello world: 2128\n",
      "hello world: 2129\n",
      "hello world: 2130\n",
      "hello world: 2131\n",
      "hello world: 2132\n",
      "hello world: 2133\n",
      "hello world: 2134\n",
      "hello world: 2135\n",
      "hello world: 2136\n",
      "hello world: 2137\n",
      "hello world: 2138\n",
      "hello world: 2139\n",
      "hello world: 2140\n",
      "hello world: 2141\n",
      "hello world: 2142\n",
      "hello world: 2143\n",
      "hello world: 2144\n",
      "hello world: 2145\n",
      "hello world: 2146\n",
      "hello world: 2147\n",
      "hello world: 2148\n",
      "hello world: 2149\n",
      "hello world: 2150\n",
      "hello world: 2151\n",
      "hello world: 2152\n",
      "hello world: 2153\n",
      "hello world: 2154\n",
      "hello world: 2155\n",
      "hello world: 2156\n",
      "hello world: 2157\n",
      "hello world: 2158\n",
      "hello world: 2159\n",
      "hello world: 2160\n",
      "hello world: 2161\n",
      "hello world: 2162\n",
      "hello world: 2163\n",
      "hello world: 2164\n",
      "hello world: 2165\n",
      "hello world: 2166\n",
      "hello world: 2167\n",
      "hello world: 2168\n",
      "hello world: 2169\n",
      "hello world: 2170\n",
      "hello world: 2171\n",
      "hello world: 2172\n",
      "hello world: 2173\n",
      "hello world: 2174\n",
      "hello world: 2175\n",
      "hello world: 2176\n",
      "hello world: 2177\n",
      "hello world: 2178\n",
      "hello world: 2179\n",
      "hello world: 2180\n",
      "hello world: 2181\n",
      "hello world: 2182\n",
      "hello world: 2183\n",
      "hello world: 2184\n",
      "hello world: 2185\n",
      "hello world: 2186\n",
      "hello world: 2187\n",
      "hello world: 2188\n",
      "hello world: 2189\n",
      "hello world: 2190\n",
      "hello world: 2191\n",
      "hello world: 2192\n",
      "hello world: 2193\n",
      "hello world: 2194\n",
      "hello world: 2195\n",
      "hello world: 2196\n",
      "hello world: 2197\n",
      "hello world: 2198\n",
      "hello world: 2199\n",
      "hello world: 2200\n",
      "hello world: 2201\n",
      "hello world: 2202\n",
      "hello world: 2203\n",
      "hello world: 2204\n",
      "hello world: 2205\n",
      "hello world: 2206\n",
      "hello world: 2207\n",
      "hello world: 2208\n",
      "hello world: 2209\n",
      "hello world: 2210\n",
      "hello world: 2211\n",
      "hello world: 2212\n",
      "hello world: 2213\n",
      "hello world: 2214\n",
      "hello world: 2215\n",
      "hello world: 2216\n",
      "hello world: 2217\n",
      "hello world: 2218\n",
      "hello world: 2219\n",
      "hello world: 2220\n",
      "hello world: 2221\n",
      "hello world: 2222\n",
      "hello world: 2223\n",
      "hello world: 2224\n",
      "hello world: 2225\n",
      "hello world: 2226\n",
      "hello world: 2227\n",
      "hello world: 2228\n",
      "hello world: 2229\n",
      "hello world: 2230\n",
      "hello world: 2231\n",
      "hello world: 2232\n",
      "hello world: 2233\n",
      "hello world: 2234\n",
      "hello world: 2235\n",
      "hello world: 2236\n",
      "hello world: 2237\n",
      "hello world: 2238\n",
      "hello world: 2239\n",
      "hello world: 2240\n",
      "hello world: 2241\n",
      "hello world: 2242\n",
      "hello world: 2243\n",
      "hello world: 2244\n",
      "hello world: 2245\n",
      "hello world: 2246\n",
      "hello world: 2247\n",
      "hello world: 2248\n",
      "hello world: 2249\n",
      "hello world: 2250\n",
      "hello world: 2251\n",
      "hello world: 2252\n",
      "hello world: 2253\n",
      "hello world: 2254\n",
      "hello world: 2255\n",
      "hello world: 2256\n",
      "hello world: 2257\n",
      "hello world: 2258\n",
      "hello world: 2259\n",
      "hello world: 2260\n",
      "hello world: 2261\n",
      "hello world: 2262\n",
      "hello world: 2263\n",
      "hello world: 2264\n",
      "hello world: 2265\n",
      "hello world: 2266\n",
      "hello world: 2267\n",
      "hello world: 2268\n",
      "hello world: 2269\n",
      "hello world: 2270\n",
      "hello world: 2271\n",
      "hello world: 2272\n",
      "hello world: 2273\n",
      "hello world: 2274\n",
      "hello world: 2275\n",
      "hello world: 2276\n",
      "hello world: 2277\n",
      "hello world: 2278\n",
      "hello world: 2279\n",
      "hello world: 2280\n",
      "hello world: 2281\n",
      "hello world: 2282\n",
      "hello world: 2283\n",
      "hello world: 2284\n",
      "hello world: 2285\n",
      "hello world: 2286\n",
      "hello world: 2287\n",
      "hello world: 2288\n",
      "hello world: 2289\n",
      "hello world: 2290\n",
      "hello world: 2291\n",
      "hello world: 2292\n",
      "hello world: 2293\n",
      "hello world: 2294\n",
      "hello world: 2295\n",
      "hello world: 2296\n",
      "hello world: 2297\n",
      "hello world: 2298\n",
      "hello world: 2299\n",
      "hello world: 2300\n",
      "hello world: 2301\n",
      "hello world: 2302\n",
      "hello world: 2303\n",
      "hello world: 2304\n",
      "hello world: 2305\n",
      "hello world: 2306\n",
      "hello world: 2307\n",
      "hello world: 2308\n",
      "hello world: 2309\n",
      "hello world: 2310\n",
      "hello world: 2311\n",
      "hello world: 2312\n",
      "hello world: 2313\n",
      "hello world: 2314\n",
      "hello world: 2315\n",
      "hello world: 2316\n",
      "hello world: 2317\n",
      "hello world: 2318\n",
      "hello world: 2319\n",
      "hello world: 2320\n",
      "hello world: 2321\n",
      "hello world: 2322\n",
      "hello world: 2323\n",
      "hello world: 2324\n",
      "hello world: 2325\n",
      "hello world: 2326\n",
      "hello world: 2327\n",
      "hello world: 2328\n",
      "hello world: 2329\n",
      "hello world: 2330\n",
      "hello world: 2331\n",
      "hello world: 2332\n",
      "hello world: 2333\n",
      "hello world: 2334\n",
      "hello world: 2335\n",
      "hello world: 2336\n",
      "hello world: 2337\n",
      "hello world: 2338\n",
      "hello world: 2339\n",
      "hello world: 2340\n",
      "hello world: 2341\n",
      "hello world: 2342\n",
      "hello world: 2343\n",
      "hello world: 2344\n",
      "hello world: 2345\n",
      "hello world: 2346\n",
      "hello world: 2347\n",
      "hello world: 2348\n",
      "hello world: 2349\n",
      "hello world: 2350\n",
      "hello world: 2351\n",
      "hello world: 2352\n",
      "hello world: 2353\n",
      "hello world: 2354\n",
      "hello world: 2355\n",
      "hello world: 2356\n",
      "hello world: 2357\n",
      "hello world: 2358\n",
      "hello world: 2359\n",
      "hello world: 2360\n",
      "hello world: 2361\n",
      "hello world: 2362\n",
      "hello world: 2363\n",
      "hello world: 2364\n",
      "hello world: 2365\n",
      "hello world: 2366\n",
      "hello world: 2367\n",
      "hello world: 2368\n",
      "hello world: 2369\n",
      "hello world: 2370\n",
      "hello world: 2371\n",
      "hello world: 2372\n",
      "hello world: 2373\n",
      "hello world: 2374\n",
      "hello world: 2375\n",
      "hello world: 2376\n",
      "hello world: 2377\n",
      "hello world: 2378\n",
      "hello world: 2379\n",
      "hello world: 2380\n",
      "hello world: 2381\n",
      "hello world: 2382\n",
      "hello world: 2383\n",
      "hello world: 2384\n",
      "hello world: 2385\n",
      "hello world: 2386\n",
      "hello world: 2387\n",
      "hello world: 2388\n",
      "hello world: 2389\n",
      "hello world: 2390\n",
      "hello world: 2391\n",
      "hello world: 2392\n",
      "hello world: 2393\n",
      "hello world: 2394\n",
      "hello world: 2395\n",
      "hello world: 2396\n",
      "hello world: 2397\n",
      "hello world: 2398\n",
      "hello world: 2399\n",
      "hello world: 2400\n",
      "hello world: 2401\n",
      "hello world: 2402\n",
      "hello world: 2403\n",
      "hello world: 2404\n",
      "hello world: 2405\n",
      "hello world: 2406\n",
      "hello world: 2407\n",
      "hello world: 2408\n",
      "hello world: 2409\n",
      "hello world: 2410\n",
      "hello world: 2411\n",
      "hello world: 2412\n",
      "hello world: 2413\n",
      "hello world: 2414\n",
      "hello world: 2415\n",
      "hello world: 2416\n",
      "hello world: 2417\n",
      "hello world: 2418\n",
      "hello world: 2419\n",
      "hello world: 2420\n",
      "hello world: 2421\n",
      "hello world: 2422\n",
      "hello world: 2423\n",
      "hello world: 2424\n",
      "hello world: 2425\n",
      "hello world: 2426\n",
      "hello world: 2427\n",
      "hello world: 2428\n",
      "hello world: 2429\n",
      "hello world: 2430\n",
      "hello world: 2431\n",
      "hello world: 2432\n",
      "hello world: 2433\n",
      "hello world: 2434\n",
      "hello world: 2435\n",
      "hello world: 2436\n",
      "hello world: 2437\n",
      "hello world: 2438\n",
      "hello world: 2439\n",
      "hello world: 2440\n",
      "hello world: 2441\n",
      "hello world: 2442\n",
      "hello world: 2443\n",
      "hello world: 2444\n",
      "hello world: 2445\n",
      "hello world: 2446\n",
      "hello world: 2447\n",
      "hello world: 2448\n",
      "hello world: 2449\n",
      "hello world: 2450\n",
      "hello world: 2451\n",
      "hello world: 2452\n",
      "hello world: 2453\n",
      "hello world: 2454\n",
      "hello world: 2455\n",
      "hello world: 2456\n",
      "hello world: 2457\n",
      "hello world: 2458\n",
      "hello world: 2459\n",
      "hello world: 2460\n",
      "hello world: 2461\n",
      "hello world: 2462\n",
      "hello world: 2463\n",
      "hello world: 2464\n",
      "hello world: 2465\n",
      "hello world: 2466\n",
      "hello world: 2467\n",
      "hello world: 2468\n",
      "hello world: 2469\n",
      "hello world: 2470\n",
      "hello world: 2471\n",
      "hello world: 2472\n",
      "hello world: 2473\n",
      "hello world: 2474\n",
      "hello world: 2475\n",
      "hello world: 2476\n",
      "hello world: 2477\n",
      "hello world: 2478\n",
      "hello world: 2479\n",
      "hello world: 2480\n",
      "hello world: 2481\n",
      "hello world: 2482\n",
      "hello world: 2483\n",
      "hello world: 2484\n",
      "hello world: 2485\n",
      "hello world: 2486\n",
      "hello world: 2487\n",
      "hello world: 2488\n",
      "hello world: 2489\n",
      "hello world: 2490\n",
      "hello world: 2491\n",
      "hello world: 2492\n",
      "hello world: 2493\n",
      "hello world: 2494\n",
      "hello world: 2495\n",
      "hello world: 2496\n",
      "hello world: 2497\n",
      "hello world: 2498\n",
      "hello world: 2499\n",
      "hello world: 2500\n",
      "hello world: 2501\n",
      "hello world: 2502\n",
      "hello world: 2503\n",
      "hello world: 2504\n",
      "hello world: 2505\n",
      "hello world: 2506\n",
      "hello world: 2507\n",
      "hello world: 2508\n",
      "hello world: 2509\n",
      "hello world: 2510\n",
      "hello world: 2511\n",
      "hello world: 2512\n",
      "hello world: 2513\n",
      "hello world: 2514\n",
      "hello world: 2515\n",
      "hello world: 2516\n",
      "hello world: 2517\n",
      "hello world: 2518\n",
      "hello world: 2519\n",
      "hello world: 2520\n",
      "hello world: 2521\n",
      "hello world: 2522\n",
      "hello world: 2523\n",
      "hello world: 2524\n",
      "hello world: 2525\n",
      "hello world: 2526\n",
      "hello world: 2527\n",
      "hello world: 2528\n",
      "hello world: 2529\n",
      "hello world: 2530\n",
      "hello world: 2531\n",
      "hello world: 2532\n",
      "hello world: 2533\n",
      "hello world: 2534\n",
      "hello world: 2535\n",
      "hello world: 2536\n",
      "hello world: 2537\n",
      "hello world: 2538\n",
      "hello world: 2539\n",
      "hello world: 2540\n",
      "hello world: 2541\n",
      "hello world: 2542\n",
      "hello world: 2543\n",
      "hello world: 2544\n",
      "hello world: 2545\n",
      "hello world: 2546\n",
      "hello world: 2547\n",
      "hello world: 2548\n",
      "hello world: 2549\n",
      "hello world: 2550\n",
      "hello world: 2551\n",
      "hello world: 2552\n",
      "hello world: 2553\n",
      "hello world: 2554\n",
      "hello world: 2555\n",
      "hello world: 2556\n",
      "hello world: 2557\n",
      "hello world: 2558\n",
      "hello world: 2559\n",
      "hello world: 2560\n",
      "hello world: 2561\n",
      "hello world: 2562\n",
      "hello world: 2563\n",
      "hello world: 2564\n",
      "hello world: 2565\n",
      "hello world: 2566\n",
      "hello world: 2567\n",
      "hello world: 2568\n",
      "hello world: 2569\n",
      "hello world: 2570\n",
      "hello world: 2571\n",
      "hello world: 2572\n",
      "hello world: 2573\n",
      "hello world: 2574\n",
      "hello world: 2575\n",
      "hello world: 2576\n",
      "hello world: 2577\n",
      "hello world: 2578\n",
      "hello world: 2579\n",
      "hello world: 2580\n",
      "hello world: 2581\n",
      "hello world: 2582\n",
      "hello world: 2583\n",
      "hello world: 2584\n",
      "hello world: 2585\n",
      "hello world: 2586\n",
      "hello world: 2587\n",
      "hello world: 2588\n",
      "hello world: 2589\n",
      "hello world: 2590\n",
      "hello world: 2591\n",
      "hello world: 2592\n",
      "hello world: 2593\n",
      "hello world: 2594\n",
      "hello world: 2595\n",
      "hello world: 2596\n",
      "hello world: 2597\n",
      "hello world: 2598\n",
      "hello world: 2599\n",
      "hello world: 2600\n",
      "hello world: 2601\n",
      "hello world: 2602\n",
      "hello world: 2603\n",
      "hello world: 2604\n",
      "hello world: 2605\n",
      "hello world: 2606\n",
      "hello world: 2607\n",
      "hello world: 2608\n",
      "hello world: 2609\n",
      "hello world: 2610\n",
      "hello world: 2611\n",
      "hello world: 2612\n",
      "hello world: 2613\n",
      "hello world: 2614\n",
      "hello world: 2615\n",
      "hello world: 2616\n",
      "hello world: 2617\n",
      "hello world: 2618\n",
      "hello world: 2619\n",
      "hello world: 2620\n",
      "hello world: 2621\n",
      "hello world: 2622\n",
      "hello world: 2623\n",
      "hello world: 2624\n",
      "hello world: 2625\n",
      "hello world: 2626\n",
      "hello world: 2627\n",
      "hello world: 2628\n",
      "hello world: 2629\n",
      "hello world: 2630\n",
      "hello world: 2631\n",
      "hello world: 2632\n",
      "hello world: 2633\n",
      "hello world: 2634\n",
      "hello world: 2635\n",
      "hello world: 2636\n",
      "hello world: 2637\n",
      "hello world: 2638\n",
      "hello world: 2639\n",
      "hello world: 2640\n",
      "hello world: 2641\n",
      "hello world: 2642\n",
      "hello world: 2643\n",
      "hello world: 2644\n",
      "hello world: 2645\n",
      "hello world: 2646\n",
      "hello world: 2647\n",
      "hello world: 2648\n",
      "hello world: 2649\n",
      "hello world: 2650\n",
      "hello world: 2651\n",
      "hello world: 2652\n",
      "hello world: 2653\n",
      "hello world: 2654\n",
      "hello world: 2655\n",
      "hello world: 2656\n",
      "hello world: 2657\n",
      "hello world: 2658\n",
      "hello world: 2659\n",
      "hello world: 2660\n",
      "hello world: 2661\n",
      "hello world: 2662\n",
      "hello world: 2663\n",
      "hello world: 2664\n",
      "hello world: 2665\n",
      "hello world: 2666\n",
      "hello world: 2667\n",
      "hello world: 2668\n",
      "hello world: 2669\n",
      "hello world: 2670\n",
      "hello world: 2671\n",
      "hello world: 2672\n",
      "hello world: 2673\n",
      "hello world: 2674\n",
      "hello world: 2675\n",
      "hello world: 2676\n",
      "hello world: 2677\n",
      "hello world: 2678\n",
      "hello world: 2679\n",
      "hello world: 2680\n",
      "hello world: 2681\n",
      "hello world: 2682\n",
      "hello world: 2683\n",
      "hello world: 2684\n",
      "hello world: 2685\n",
      "hello world: 2686\n",
      "hello world: 2687\n",
      "hello world: 2688\n",
      "hello world: 2689\n",
      "hello world: 2690\n",
      "hello world: 2691\n",
      "hello world: 2692\n",
      "hello world: 2693\n",
      "hello world: 2694\n",
      "hello world: 2695\n",
      "hello world: 2696\n",
      "hello world: 2697\n",
      "hello world: 2698\n",
      "hello world: 2699\n",
      "hello world: 2700\n",
      "hello world: 2701\n",
      "hello world: 2702\n",
      "hello world: 2703\n",
      "hello world: 2704\n",
      "hello world: 2705\n",
      "hello world: 2706\n",
      "hello world: 2707\n",
      "hello world: 2708\n",
      "hello world: 2709\n",
      "hello world: 2710\n",
      "hello world: 2711\n",
      "hello world: 2712\n",
      "hello world: 2713\n",
      "hello world: 2714\n",
      "hello world: 2715\n",
      "hello world: 2716\n",
      "hello world: 2717\n",
      "hello world: 2718\n",
      "hello world: 2719\n",
      "hello world: 2720\n",
      "hello world: 2721\n",
      "hello world: 2722\n",
      "hello world: 2723\n",
      "hello world: 2724\n",
      "hello world: 2725\n",
      "hello world: 2726\n",
      "hello world: 2727\n",
      "hello world: 2728\n",
      "hello world: 2729\n",
      "hello world: 2730\n",
      "hello world: 2731\n",
      "hello world: 2732\n",
      "hello world: 2733\n",
      "hello world: 2734\n",
      "hello world: 2735\n",
      "hello world: 2736\n",
      "hello world: 2737\n",
      "hello world: 2738\n",
      "hello world: 2739\n",
      "hello world: 2740\n",
      "hello world: 2741\n",
      "hello world: 2742\n",
      "hello world: 2743\n",
      "hello world: 2744\n",
      "hello world: 2745\n",
      "hello world: 2746\n",
      "hello world: 2747\n",
      "hello world: 2748\n",
      "hello world: 2749\n",
      "hello world: 2750\n",
      "hello world: 2751\n",
      "hello world: 2752\n",
      "hello world: 2753\n",
      "hello world: 2754\n",
      "hello world: 2755\n",
      "hello world: 2756\n",
      "hello world: 2757\n",
      "hello world: 2758\n",
      "hello world: 2759\n",
      "hello world: 2760\n",
      "hello world: 2761\n",
      "hello world: 2762\n",
      "hello world: 2763\n",
      "hello world: 2764\n",
      "hello world: 2765\n",
      "hello world: 2766\n",
      "hello world: 2767\n",
      "hello world: 2768\n",
      "hello world: 2769\n",
      "hello world: 2770\n",
      "hello world: 2771\n",
      "hello world: 2772\n",
      "hello world: 2773\n",
      "hello world: 2774\n",
      "hello world: 2775\n",
      "hello world: 2776\n",
      "hello world: 2777\n",
      "hello world: 2778\n",
      "hello world: 2779\n",
      "hello world: 2780\n",
      "hello world: 2781\n",
      "hello world: 2782\n",
      "hello world: 2783\n",
      "hello world: 2784\n",
      "hello world: 2785\n",
      "hello world: 2786\n",
      "hello world: 2787\n",
      "hello world: 2788\n",
      "hello world: 2789\n",
      "hello world: 2790\n",
      "hello world: 2791\n",
      "hello \n"
     ]
    }
   ],
   "source": [
    "f = open('newfile.txt','w')\n",
    "for i in range(3000):\n",
    "    f.write('hello world: ' + str(i) + '\\n')\n",
    "\n",
    "g = open('newfile.txt', 'r')\n",
    "print g.read()\n",
    "f.close()\n",
    "g.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.remove('newfile.txt')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "出现异常时候的读写："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "ZeroDivisionError",
     "evalue": "float division by zero",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mZeroDivisionError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-20-8dc1cc9b29ec>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[0mf\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'newfile.txt'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'w'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m3000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m     \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1.0\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m \u001b[1;33m-\u001b[0m \u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      4\u001b[0m     \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'hello world: '\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m'\\n'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
     ]
    }
   ],
   "source": [
    "f = open('newfile.txt','w')\n",
    "for i in range(3000):\n",
    "    x = 1.0 / (i - 1000)\n",
    "    f.write('hello world: ' + str(i) + '\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "查看已有内容："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world: 0\n",
      "hello world: 1\n",
      "hello world: 2\n",
      "hello world: 3\n",
      "hello world: 4\n",
      "hello world: 5\n",
      "hello world: 6\n",
      "hello world: 7\n",
      "hello world: 8\n",
      "hello world: 9\n",
      "hello world: 10\n",
      "hello world: 11\n",
      "hello world: 12\n",
      "hello world: 13\n",
      "hello world: 14\n",
      "hello world: 15\n",
      "hello world: 16\n",
      "hello world: 17\n",
      "hello world: 18\n",
      "hello world: 19\n",
      "hello world: 20\n",
      "hello world: 21\n",
      "hello world: 22\n",
      "hello world: 23\n",
      "hello world: 24\n",
      "hello world: 25\n",
      "hello world: 26\n",
      "hello world: 27\n",
      "hello world: 28\n",
      "hello world: 29\n",
      "hello world: 30\n",
      "hello world: 31\n",
      "hello world: 32\n",
      "hello world: 33\n",
      "hello world: 34\n",
      "hello world: 35\n",
      "hello world: 36\n",
      "hello world: 37\n",
      "hello world: 38\n",
      "hello world: 39\n",
      "hello world: 40\n",
      "hello world: 41\n",
      "hello world: 42\n",
      "hello world: 43\n",
      "hello world: 44\n",
      "hello world: 45\n",
      "hello world: 46\n",
      "hello world: 47\n",
      "hello world: 48\n",
      "hello world: 49\n",
      "hello world: 50\n",
      "hello world: 51\n",
      "hello world: 52\n",
      "hello world: 53\n",
      "hello world: 54\n",
      "hello world: 55\n",
      "hello world: 56\n",
      "hello world: 57\n",
      "hello world: 58\n",
      "hello world: 59\n",
      "hello world: 60\n",
      "hello world: 61\n",
      "hello world: 62\n",
      "hello world: 63\n",
      "hello world: 64\n",
      "hello world: 65\n",
      "hello world: 66\n",
      "hello world: 67\n",
      "hello world: 68\n",
      "hello world: 69\n",
      "hello world: 70\n",
      "hello world: 71\n",
      "hello world: 72\n",
      "hello world: 73\n",
      "hello world: 74\n",
      "hello world: 75\n",
      "hello world: 76\n",
      "hello world: 77\n",
      "hello world: 78\n",
      "hello world: 79\n",
      "hello world: 80\n",
      "hello world: 81\n",
      "hello world: 82\n",
      "hello world: 83\n",
      "hello world: 84\n",
      "hello world: 85\n",
      "hello world: 86\n",
      "hello world: 87\n",
      "hello world: 88\n",
      "hello world: 89\n",
      "hello world: 90\n",
      "hello world: 91\n",
      "hello world: 92\n",
      "hello world: 93\n",
      "hello world: 94\n",
      "hello world: 95\n",
      "hello world: 96\n",
      "hello world: 97\n",
      "hello world: 98\n",
      "hello world: 99\n",
      "hello world: 100\n",
      "hello world: 101\n",
      "hello world: 102\n",
      "hello world: 103\n",
      "hello world: 104\n",
      "hello world: 105\n",
      "hello world: 106\n",
      "hello world: 107\n",
      "hello world: 108\n",
      "hello world: 109\n",
      "hello world: 110\n",
      "hello world: 111\n",
      "hello world: 112\n",
      "hello world: 113\n",
      "hello world: 114\n",
      "hello world: 115\n",
      "hello world: 116\n",
      "hello world: 117\n",
      "hello world: 118\n",
      "hello world: 119\n",
      "hello world: 120\n",
      "hello world: 121\n",
      "hello world: 122\n",
      "hello world: 123\n",
      "hello world: 124\n",
      "hello world: 125\n",
      "hello world: 126\n",
      "hello world: 127\n",
      "hello world: 128\n",
      "hello world: 129\n",
      "hello world: 130\n",
      "hello world: 131\n",
      "hello world: 132\n",
      "hello world: 133\n",
      "hello world: 134\n",
      "hello world: 135\n",
      "hello world: 136\n",
      "hello world: 137\n",
      "hello world: 138\n",
      "hello world: 139\n",
      "hello world: 140\n",
      "hello world: 141\n",
      "hello world: 142\n",
      "hello world: 143\n",
      "hello world: 144\n",
      "hello world: 145\n",
      "hello world: 146\n",
      "hello world: 147\n",
      "hello world: 148\n",
      "hello world: 149\n",
      "hello world: 150\n",
      "hello world: 151\n",
      "hello world: 152\n",
      "hello world: 153\n",
      "hello world: 154\n",
      "hello world: 155\n",
      "hello world: 156\n",
      "hello world: 157\n",
      "hello world: 158\n",
      "hello world: 159\n",
      "hello world: 160\n",
      "hello world: 161\n",
      "hello world: 162\n",
      "hello world: 163\n",
      "hello world: 164\n",
      "hello world: 165\n",
      "hello world: 166\n",
      "hello world: 167\n",
      "hello world: 168\n",
      "hello world: 169\n",
      "hello world: 170\n",
      "hello world: 171\n",
      "hello world: 172\n",
      "hello world: 173\n",
      "hello world: 174\n",
      "hello world: 175\n",
      "hello world: 176\n",
      "hello world: 177\n",
      "hello world: 178\n",
      "hello world: 179\n",
      "hello world: 180\n",
      "hello world: 181\n",
      "hello world: 182\n",
      "hello world: 183\n",
      "hello world: 184\n",
      "hello world: 185\n",
      "hello world: 186\n",
      "hello world: 187\n",
      "hello world: 188\n",
      "hello world: 189\n",
      "hello world: 190\n",
      "hello world: 191\n",
      "hello world: 192\n",
      "hello world: 193\n",
      "hello world: 194\n",
      "hello world: 195\n",
      "hello world: 196\n",
      "hello world: 197\n",
      "hello world: 198\n",
      "hello world: 199\n",
      "hello world: 200\n",
      "hello world: 201\n",
      "hello world: 202\n",
      "hello world: 203\n",
      "hello world: 204\n",
      "hello world: 205\n",
      "hello world: 206\n",
      "hello world: 207\n",
      "hello world: 208\n",
      "hello world: 209\n",
      "hello world: 210\n",
      "hello world: 211\n",
      "hello world: 212\n",
      "hello world: 213\n",
      "hello world: 214\n",
      "hello world: 215\n",
      "hello world: 216\n",
      "hello world: 217\n",
      "hello world: 218\n",
      "hello world: 219\n",
      "hello world: 220\n",
      "hello world: 221\n",
      "hello world: 222\n",
      "hello world: 223\n",
      "hello world: 224\n",
      "hello world: 225\n",
      "hello world: 226\n",
      "hello world: 227\n",
      "hello world: 228\n",
      "hello world: 229\n",
      "hello world: 230\n",
      "hello world: 231\n",
      "hello world: 232\n",
      "hello world: 233\n",
      "hello world: 234\n",
      "hello world: 235\n",
      "hello world: 236\n",
      "hello world: 237\n",
      "hello world: 238\n",
      "hello world: 239\n",
      "hello world: 240\n",
      "hello world: 241\n",
      "hello world: 242\n",
      "hello world: 243\n",
      "hello world: 244\n",
      "hello world: 245\n",
      "hello world: 246\n",
      "hello world: 247\n",
      "hello world: 248\n",
      "hello world: 249\n",
      "hello world: 250\n",
      "hello world: 251\n",
      "hello world: 252\n",
      "hello world: 253\n",
      "hello world: 254\n",
      "hello world: 255\n",
      "hello world: 256\n",
      "hello world: 257\n",
      "hello world: 258\n",
      "hello world: 259\n",
      "hello world: 260\n",
      "hello world: 261\n",
      "hello world: 262\n",
      "hello world: 263\n",
      "hello world: 264\n",
      "hello world: 265\n",
      "hello world: 266\n",
      "hello world: 267\n",
      "hello world: 268\n",
      "hello world: 269\n",
      "hello world: 270\n",
      "hello world: 271\n",
      "hello world: 272\n",
      "hello world: 273\n",
      "hello world: 274\n",
      "hello world: 275\n",
      "hello world: 276\n",
      "hello world: 277\n",
      "hello world: 278\n",
      "hello world: 279\n",
      "hello world: 280\n",
      "hello world: 281\n",
      "hello world: 282\n",
      "hello world: 283\n",
      "hello world: 284\n",
      "hello world: 285\n",
      "hello world: 286\n",
      "hello world: 287\n",
      "hello world: 288\n",
      "hello world: 289\n",
      "hello world: 290\n",
      "hello world: 291\n",
      "hello world: 292\n",
      "hello world: 293\n",
      "hello world: 294\n",
      "hello world: 295\n",
      "hello world: 296\n",
      "hello world: 297\n",
      "hello world: 298\n",
      "hello world: 299\n",
      "hello world: 300\n",
      "hello world: 301\n",
      "hello world: 302\n",
      "hello world: 303\n",
      "hello world: 304\n",
      "hello world: 305\n",
      "hello world: 306\n",
      "hello world: 307\n",
      "hello world: 308\n",
      "hello world: 309\n",
      "hello world: 310\n",
      "hello world: 311\n",
      "hello world: 312\n",
      "hello world: 313\n",
      "hello world: 314\n",
      "hello world: 315\n",
      "hello world: 316\n",
      "hello world: 317\n",
      "hello world: 318\n",
      "hello world: 319\n",
      "hello world: 320\n",
      "hello world: 321\n",
      "hello world: 322\n",
      "hello world: 323\n",
      "hello world: 324\n",
      "hello world: 325\n",
      "hello world: 326\n",
      "hello world: 327\n",
      "hello world: 328\n",
      "hello world: 329\n",
      "hello world: 330\n",
      "hello world: 331\n",
      "hello world: 332\n",
      "hello world: 333\n",
      "hello world: 334\n",
      "hello world: 335\n",
      "hello world: 336\n",
      "hello world: 337\n",
      "hello world: 338\n",
      "hello world: 339\n",
      "hello world: 340\n",
      "hello world: 341\n",
      "hello world: 342\n",
      "hello world: 343\n",
      "hello world: 344\n",
      "hello world: 345\n",
      "hello world: 346\n",
      "hello world: 347\n",
      "hello world: 348\n",
      "hello world: 349\n",
      "hello world: 350\n",
      "hello world: 351\n",
      "hello world: 352\n",
      "hello world: 353\n",
      "hello world: 354\n",
      "hello world: 355\n",
      "hello world: 356\n",
      "hello world: 357\n",
      "hello world: 358\n",
      "hello world: 359\n",
      "hello world: 360\n",
      "hello world: 361\n",
      "hello world: 362\n",
      "hello world: 363\n",
      "hello world: 364\n",
      "hello world: 365\n",
      "hello world: 366\n",
      "hello world: 367\n",
      "hello world: 368\n",
      "hello world: 369\n",
      "hello world: 370\n",
      "hello world: 371\n",
      "hello world: 372\n",
      "hello world: 373\n",
      "hello world: 374\n",
      "hello world: 375\n",
      "hello world: 376\n",
      "hello world: 377\n",
      "hello world: 378\n",
      "hello world: 379\n",
      "hello world: 380\n",
      "hello world: 381\n",
      "hello world: 382\n",
      "hello world: 383\n",
      "hello world: 384\n",
      "hello world: 385\n",
      "hello world: 386\n",
      "hello world: 387\n",
      "hello world: 388\n",
      "hello world: 389\n",
      "hello world: 390\n",
      "hello world: 391\n",
      "hello world: 392\n",
      "hello world: 393\n",
      "hello world: 394\n",
      "hello world: 395\n",
      "hello world: 396\n",
      "hello world: 397\n",
      "hello world: 398\n",
      "hello world: 399\n",
      "hello world: 400\n",
      "hello world: 401\n",
      "hello world: 402\n",
      "hello world: 403\n",
      "hello world: 404\n",
      "hello world: 405\n",
      "hello world: 406\n",
      "hello world: 407\n",
      "hello world: 408\n",
      "hello world: 409\n",
      "hello world: 410\n",
      "hello world: 411\n",
      "hello world: 412\n",
      "hello world: 413\n",
      "hello world: 414\n",
      "hello world: 415\n",
      "hello world: 416\n",
      "hello world: 417\n",
      "hello world: 418\n",
      "hello world: 419\n",
      "hello world: 420\n",
      "hello world: 421\n",
      "hello world: 422\n",
      "hello world: 423\n",
      "hello world: 424\n",
      "hello world: 425\n",
      "hello world: 426\n",
      "hello world: 427\n",
      "hello world: 428\n",
      "hello world: 429\n",
      "hello world: 430\n",
      "hello world: 431\n",
      "hello world: 432\n",
      "hello world: 433\n",
      "hello world: 434\n",
      "hello world: 435\n",
      "hello world: 436\n",
      "hello world: 437\n",
      "hello world: 438\n",
      "hello world: 439\n",
      "hello world: 440\n",
      "hello world: 441\n",
      "hello world: 442\n",
      "hello world: 443\n",
      "hello world: 444\n",
      "hello world: 445\n",
      "hello world: 446\n",
      "hello world: 447\n",
      "hello world: 448\n",
      "hello world: 449\n",
      "hello world: 450\n",
      "hello world: 451\n",
      "hello world: 452\n",
      "hello world: 453\n",
      "hello world: 454\n",
      "hello world: 455\n",
      "hello world: 456\n",
      "hello world: 457\n",
      "hello world: 458\n",
      "hello world: 459\n",
      "hello world: 460\n",
      "hello world: 461\n",
      "hello world: 462\n",
      "hello world: 463\n",
      "hello world: 464\n",
      "hello world: 465\n",
      "hello world: 466\n",
      "hello world: 467\n",
      "hello world: 468\n",
      "hello world: 469\n",
      "hello world: 470\n",
      "hello world: 471\n",
      "hello world: 472\n",
      "hello world: 473\n",
      "hello world: 474\n",
      "hello world: 475\n",
      "hello world: 476\n",
      "hello world: 477\n",
      "hello world: 478\n",
      "hello world: 479\n",
      "hello world: 480\n",
      "hello world: 481\n",
      "hello world: 482\n",
      "hello world: 483\n",
      "hello world: 484\n",
      "hello world: 485\n",
      "hello world: 486\n",
      "hello world: 487\n",
      "hello world: 488\n",
      "hello world: 489\n",
      "hello world: 490\n",
      "hello world: 491\n",
      "hello world: 492\n",
      "hello world: 493\n",
      "hello world: 494\n",
      "hello world: 495\n",
      "hello world: 496\n",
      "hello world: 497\n",
      "hello world: 498\n",
      "hello world: 499\n",
      "hello world: 500\n",
      "hello world: 501\n",
      "hello world: 502\n",
      "hello world: 503\n",
      "hello world: 504\n",
      "hello world: 505\n",
      "hello world: 506\n",
      "hello world: 507\n",
      "hello world: 508\n",
      "hello world: 509\n",
      "hello world: 510\n",
      "hello world: 511\n",
      "hello world: 512\n",
      "hello world: 513\n",
      "hello world: 514\n",
      "hello world: 515\n",
      "hello world: 516\n",
      "hello world: 517\n",
      "hello world: 518\n",
      "hello world: 519\n",
      "hello world: 520\n",
      "hello world: 521\n",
      "hello world: 522\n",
      "hello world: 523\n",
      "hello world: 524\n",
      "hello world: 525\n",
      "hello world: 526\n",
      "hello world: 527\n",
      "hello world: 528\n",
      "hello world: 529\n",
      "hello world: 530\n",
      "hello world: 531\n",
      "hello world: 532\n",
      "hello world: 533\n",
      "hello world: 534\n",
      "hello world: 535\n",
      "hello world: 536\n",
      "hello world: 537\n",
      "hello world: 538\n",
      "hello world: 539\n",
      "hello world: 540\n",
      "hello world: 541\n",
      "hello world: 542\n",
      "hello world: 543\n",
      "hello world: 544\n",
      "hello world: 545\n",
      "hello world: 546\n",
      "hello world: 547\n",
      "hello world: 548\n",
      "hello world: 549\n",
      "hello world: 550\n",
      "hello world: 551\n",
      "hello world: 552\n",
      "hello world: 553\n",
      "hello world: 554\n",
      "hello world: 555\n",
      "hello world: 556\n",
      "hello world: 557\n",
      "hello world: 558\n",
      "hello world: 559\n",
      "hello world: 560\n",
      "hello world: 561\n",
      "hello world: 562\n",
      "hello world: 563\n",
      "hello world: 564\n",
      "hello world: 565\n",
      "hello world: 566\n",
      "hello world: 567\n",
      "hello world: 568\n",
      "hello world: 569\n",
      "hello world: 570\n",
      "hello world: 571\n",
      "hello world: 572\n",
      "hello world: 573\n",
      "hello world: 574\n",
      "hello world: 575\n",
      "hello world: 576\n",
      "hello world: 577\n",
      "hello world: 578\n",
      "hello world: 579\n",
      "hello world: 580\n",
      "hello world: 581\n",
      "hello world: 582\n",
      "hello world: 583\n",
      "hello world: 584\n",
      "hello world: 585\n",
      "hello world: 586\n",
      "hello world: 587\n",
      "hello world: 588\n",
      "hello world: 589\n",
      "hello world: 590\n",
      "hello world: 591\n",
      "hello world: 592\n",
      "hello world: 593\n",
      "hello world: 594\n",
      "hello world: 595\n",
      "hello world: 596\n",
      "hello world: 597\n",
      "hello world: 598\n",
      "hello world: 599\n",
      "hello world: 600\n",
      "hello world: 601\n",
      "hello world: 602\n",
      "hello world: 603\n",
      "hello world: 604\n",
      "hello world: 605\n",
      "hello world: 606\n",
      "hello world: 607\n",
      "hello world: 608\n",
      "hello world: 609\n",
      "hello world: 610\n",
      "hello world: 611\n",
      "hello world: 612\n",
      "hello world: 613\n",
      "hello world: 614\n",
      "hello world: 615\n",
      "hello world: 616\n",
      "hello world: 617\n",
      "hello world: 618\n",
      "hello world: 619\n",
      "hello world: 620\n",
      "hello world: 621\n",
      "hello world: 622\n",
      "hello world: 623\n",
      "hello world: 624\n",
      "hello world: 625\n",
      "hello world: 626\n",
      "hello world: 627\n",
      "hello world: 628\n",
      "hello world: 629\n",
      "hello world: 630\n",
      "hello world: 631\n",
      "hello world: 632\n",
      "hello world: 633\n",
      "hello world: 634\n",
      "hello world: 635\n",
      "hello world: 636\n",
      "hello world: 637\n",
      "hello world: 638\n",
      "hello world: 639\n",
      "hello world: 640\n",
      "hello world: 641\n",
      "hello world: 642\n",
      "hello world: 643\n",
      "hello world: 644\n",
      "hello world: 645\n",
      "hello world: 646\n",
      "hello world: 647\n",
      "hello world: 648\n",
      "hello world: 649\n",
      "hello world: 650\n",
      "hello world: 651\n",
      "hello world: 652\n",
      "hello world: 653\n",
      "hello world: 654\n",
      "hello world: 655\n",
      "hello world: 656\n",
      "hello world: 657\n",
      "hello world: 658\n",
      "hello world: 659\n",
      "hello world: 660\n",
      "hello world: 661\n",
      "hello world: 662\n",
      "hello world: 663\n",
      "hello world: 664\n",
      "hello world: 665\n",
      "hello world: 666\n",
      "hello world: 667\n",
      "hello world: 668\n",
      "hello world: 669\n",
      "hello world: 670\n",
      "hello world: 671\n",
      "hello world: 672\n",
      "hello world: 673\n",
      "hello world: 674\n",
      "hello world: 675\n",
      "hello world: 676\n",
      "hello world: 677\n",
      "hello world: 678\n",
      "hello world: 679\n",
      "hello world: 680\n",
      "hello world: 681\n",
      "hello world: 682\n",
      "hello world: 683\n",
      "hello world: 684\n",
      "hello world: 685\n",
      "hello world: 686\n",
      "hello world: 687\n",
      "hello world: 688\n",
      "hello world: 689\n",
      "hello world: 690\n",
      "hello world: 691\n",
      "hello world: 692\n",
      "hello world: 693\n",
      "hello world: 694\n",
      "hello world: 695\n",
      "hello world: 696\n",
      "hello world: 697\n",
      "hello world: 698\n",
      "hello world: 699\n",
      "hello world: 700\n",
      "hello world: 701\n",
      "hello world: 702\n",
      "hello world: 703\n",
      "hello world: 704\n",
      "hello world: 705\n",
      "hello world: 706\n",
      "hello world: 707\n",
      "hello world: 708\n",
      "hello world: 709\n",
      "hello world: 710\n",
      "hello world: 711\n",
      "hello world: 712\n",
      "hello world: 713\n",
      "hello world: 714\n",
      "hello world: 715\n",
      "hello world: 716\n",
      "hello world: 717\n",
      "hello world: 718\n",
      "hello world: 719\n",
      "hello world: 720\n",
      "hello world: 721\n",
      "hello world: 722\n",
      "hello world: 723\n",
      "hello world: 724\n",
      "hello world: 725\n",
      "hello world: 726\n",
      "hello world: 727\n",
      "hello world: 728\n",
      "hello world: 729\n",
      "hello world: 730\n",
      "hello world: 731\n",
      "hello world: 732\n",
      "hello world: 733\n",
      "hello world: 734\n",
      "hello world: 735\n",
      "hello world: 736\n",
      "hello world: 737\n",
      "hello world: 738\n",
      "hello world: 739\n",
      "hello world: 740\n",
      "hello world: 741\n",
      "hello world: 742\n",
      "hello world: 743\n",
      "hello world: 744\n",
      "hello world: 745\n",
      "hello world: 746\n",
      "hello world: 747\n",
      "hello world: 748\n",
      "hello world: 749\n",
      "hello world: 750\n",
      "hello world: 751\n",
      "hello world: 752\n",
      "hello world: 753\n",
      "hello world: 754\n",
      "hello world: 755\n",
      "hello world: 756\n",
      "hello world: 757\n",
      "hello world: 758\n",
      "hello world: 759\n",
      "hello world: 760\n",
      "hello world: 761\n",
      "hello world: 762\n",
      "hello world: 763\n",
      "hello world: 764\n",
      "hello world: 765\n",
      "hello world: 766\n",
      "hello world: 767\n",
      "hello world: 768\n",
      "hello world: 769\n",
      "hello world: 770\n",
      "hello world: 771\n",
      "hello world: 772\n",
      "hello world: 773\n",
      "hello world: 774\n",
      "hello world: 775\n",
      "hello world: 776\n",
      "hello world: 777\n",
      "hello world: 778\n",
      "hello world: 779\n",
      "hello world: 780\n",
      "hello world: 781\n",
      "hello world: 782\n",
      "hello world: 783\n",
      "hello world: 784\n",
      "hello world: 785\n",
      "hello world: 786\n",
      "hello world: 787\n",
      "hello world: 788\n",
      "hello world: 789\n",
      "hello world: 790\n",
      "hello world: 791\n",
      "hello world: 792\n",
      "hello world: 793\n",
      "hello world: 794\n",
      "hello world: 795\n",
      "hello world: 796\n",
      "hello world: 797\n",
      "hello world: 798\n",
      "hello world: 799\n",
      "hello world: 800\n",
      "hello world: 801\n",
      "hello world: 802\n",
      "hello world: 803\n",
      "hello world: 804\n",
      "hello world: 805\n",
      "hello world: 806\n",
      "hello world: 807\n",
      "hello world: 808\n",
      "hello world: 809\n",
      "hello world: 810\n",
      "hello world: 811\n",
      "hello world: 812\n",
      "hello world: 813\n",
      "hello world: 814\n",
      "hello world: 815\n",
      "hello world: 816\n",
      "hello world: 817\n",
      "hello world: 818\n",
      "hello world: 819\n",
      "hello world: 820\n",
      "hello world: 821\n",
      "hello world: 822\n",
      "hello world: 823\n",
      "hello world: 824\n",
      "hello world: 825\n",
      "hello world: 826\n",
      "hello world: 827\n",
      "hello world: 828\n",
      "hello world: 829\n",
      "hello world: 830\n",
      "hello world: 831\n",
      "hello world: 832\n",
      "hello world: 833\n",
      "hello world: 834\n",
      "hello world: 835\n",
      "hello world: 836\n",
      "hello world: 837\n",
      "hello world: 838\n",
      "hello world: 839\n",
      "hello world: 840\n",
      "hello world: 841\n",
      "hello world: 842\n",
      "hello world: 843\n",
      "hello world: 844\n",
      "hello world: 845\n",
      "hello world: 846\n",
      "hello world: 847\n",
      "hello world: 848\n",
      "hello world: 849\n",
      "hello world: 850\n",
      "hello world: 851\n",
      "hello world: 852\n",
      "hello world: 853\n",
      "hello world: 854\n",
      "hello world: 855\n",
      "hello world: 856\n",
      "hello world: 857\n",
      "hello world: 858\n",
      "hello world: 859\n",
      "hello world: 860\n",
      "hello world: 861\n",
      "hello world: 862\n",
      "hello world: 863\n",
      "hello world: 864\n",
      "hello world: 865\n",
      "hello world: 866\n",
      "hello world: 867\n",
      "hello world: 868\n",
      "hello world: 869\n",
      "hello world: 870\n",
      "hello world: 871\n",
      "hello world: 872\n",
      "hello world: 873\n",
      "hello world: 874\n",
      "hello world: 875\n",
      "hello world: 876\n",
      "hello world: 877\n",
      "hello world: 878\n",
      "hello world: 879\n",
      "hello world: 880\n",
      "hello world: 881\n",
      "hello world: 882\n",
      "hello world: 883\n",
      "hello world: 884\n",
      "hello world: 885\n",
      "hello world: 886\n",
      "hello world: 887\n",
      "hello world: 888\n",
      "hello world: 889\n",
      "hello world: 890\n",
      "hello world: 891\n",
      "hello world: 892\n",
      "hello world: 893\n",
      "hello world: 894\n",
      "hello world: 895\n",
      "hello world: 896\n",
      "hello world: 897\n",
      "hello world: 898\n",
      "hello world: 899\n",
      "hello world: 900\n",
      "hello world: 901\n",
      "hello world: 902\n",
      "hello world: 903\n",
      "hello world: 904\n",
      "hello world: 905\n",
      "hello world: 906\n",
      "hello world: 907\n",
      "hello world: 908\n",
      "hello world: 909\n",
      "hello world: 910\n",
      "hello world: 911\n",
      "hello world: 912\n",
      "hello world: 913\n",
      "hello world: 914\n",
      "hello world: 915\n",
      "hello world: 916\n",
      "hello world: 917\n",
      "hello world: 918\n",
      "hello world: 919\n",
      "hello world: 920\n",
      "hello world: 921\n",
      "hello world: 922\n",
      "hello world: 923\n",
      "hello world: 924\n",
      "hello world: 925\n",
      "hello world: 926\n",
      "hello world: 927\n",
      "hello world: 928\n",
      "hello world: 929\n",
      "hello world: 930\n",
      "hello world: 931\n",
      "hello world: 932\n",
      "hello world: 933\n",
      "hello world: 934\n",
      "hello world: 935\n",
      "hello world: 936\n",
      "hello world: 937\n",
      "hello world: 938\n",
      "hello world: 939\n",
      "hello world: 940\n",
      "hello world: 941\n",
      "hello world: 942\n",
      "hello world: 943\n",
      "hello world: 944\n",
      "hello world: 945\n",
      "hello world: 946\n",
      "hello world: 947\n",
      "hello world: 948\n",
      "hello world: 949\n",
      "hello world: 950\n",
      "hello world: 951\n",
      "hello world: 952\n",
      "hello world: 953\n",
      "hello world: 954\n",
      "hello world: 955\n",
      "hello world: 956\n",
      "hello world: 957\n",
      "hello world: 958\n",
      "hello world: 959\n",
      "hello world: 960\n",
      "hello world: 961\n",
      "hello world: 962\n",
      "hello world: 963\n",
      "hello world: 964\n",
      "hello world: 965\n",
      "hello world: 966\n",
      "hello world: 967\n",
      "hello world: 968\n",
      "hello world: 969\n",
      "hell\n"
     ]
    }
   ],
   "source": [
    "g = open('newfile.txt', 'r')\n",
    "print g.read()\n",
    "f.close()\n",
    "g.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看到，出现异常的时候，磁盘的写入并没有完成，为此我们可以使用 `try/except/finally` 块来关闭文件，这里 `finally` 确保关闭文件，所有的写入已经完成。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "something bad happened\n"
     ]
    }
   ],
   "source": [
    "f = open('newfile.txt','w')\n",
    "try:\n",
    "    for i in range(3000):\n",
    "        x = 1.0 / (i - 1000)\n",
    "        f.write('hello world: ' + str(i) + '\\n')\n",
    "except Exception:\n",
    "    print \"something bad happened\"\n",
    "finally:\n",
    "    f.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world: 0\n",
      "hello world: 1\n",
      "hello world: 2\n",
      "hello world: 3\n",
      "hello world: 4\n",
      "hello world: 5\n",
      "hello world: 6\n",
      "hello world: 7\n",
      "hello world: 8\n",
      "hello world: 9\n",
      "hello world: 10\n",
      "hello world: 11\n",
      "hello world: 12\n",
      "hello world: 13\n",
      "hello world: 14\n",
      "hello world: 15\n",
      "hello world: 16\n",
      "hello world: 17\n",
      "hello world: 18\n",
      "hello world: 19\n",
      "hello world: 20\n",
      "hello world: 21\n",
      "hello world: 22\n",
      "hello world: 23\n",
      "hello world: 24\n",
      "hello world: 25\n",
      "hello world: 26\n",
      "hello world: 27\n",
      "hello world: 28\n",
      "hello world: 29\n",
      "hello world: 30\n",
      "hello world: 31\n",
      "hello world: 32\n",
      "hello world: 33\n",
      "hello world: 34\n",
      "hello world: 35\n",
      "hello world: 36\n",
      "hello world: 37\n",
      "hello world: 38\n",
      "hello world: 39\n",
      "hello world: 40\n",
      "hello world: 41\n",
      "hello world: 42\n",
      "hello world: 43\n",
      "hello world: 44\n",
      "hello world: 45\n",
      "hello world: 46\n",
      "hello world: 47\n",
      "hello world: 48\n",
      "hello world: 49\n",
      "hello world: 50\n",
      "hello world: 51\n",
      "hello world: 52\n",
      "hello world: 53\n",
      "hello world: 54\n",
      "hello world: 55\n",
      "hello world: 56\n",
      "hello world: 57\n",
      "hello world: 58\n",
      "hello world: 59\n",
      "hello world: 60\n",
      "hello world: 61\n",
      "hello world: 62\n",
      "hello world: 63\n",
      "hello world: 64\n",
      "hello world: 65\n",
      "hello world: 66\n",
      "hello world: 67\n",
      "hello world: 68\n",
      "hello world: 69\n",
      "hello world: 70\n",
      "hello world: 71\n",
      "hello world: 72\n",
      "hello world: 73\n",
      "hello world: 74\n",
      "hello world: 75\n",
      "hello world: 76\n",
      "hello world: 77\n",
      "hello world: 78\n",
      "hello world: 79\n",
      "hello world: 80\n",
      "hello world: 81\n",
      "hello world: 82\n",
      "hello world: 83\n",
      "hello world: 84\n",
      "hello world: 85\n",
      "hello world: 86\n",
      "hello world: 87\n",
      "hello world: 88\n",
      "hello world: 89\n",
      "hello world: 90\n",
      "hello world: 91\n",
      "hello world: 92\n",
      "hello world: 93\n",
      "hello world: 94\n",
      "hello world: 95\n",
      "hello world: 96\n",
      "hello world: 97\n",
      "hello world: 98\n",
      "hello world: 99\n",
      "hello world: 100\n",
      "hello world: 101\n",
      "hello world: 102\n",
      "hello world: 103\n",
      "hello world: 104\n",
      "hello world: 105\n",
      "hello world: 106\n",
      "hello world: 107\n",
      "hello world: 108\n",
      "hello world: 109\n",
      "hello world: 110\n",
      "hello world: 111\n",
      "hello world: 112\n",
      "hello world: 113\n",
      "hello world: 114\n",
      "hello world: 115\n",
      "hello world: 116\n",
      "hello world: 117\n",
      "hello world: 118\n",
      "hello world: 119\n",
      "hello world: 120\n",
      "hello world: 121\n",
      "hello world: 122\n",
      "hello world: 123\n",
      "hello world: 124\n",
      "hello world: 125\n",
      "hello world: 126\n",
      "hello world: 127\n",
      "hello world: 128\n",
      "hello world: 129\n",
      "hello world: 130\n",
      "hello world: 131\n",
      "hello world: 132\n",
      "hello world: 133\n",
      "hello world: 134\n",
      "hello world: 135\n",
      "hello world: 136\n",
      "hello world: 137\n",
      "hello world: 138\n",
      "hello world: 139\n",
      "hello world: 140\n",
      "hello world: 141\n",
      "hello world: 142\n",
      "hello world: 143\n",
      "hello world: 144\n",
      "hello world: 145\n",
      "hello world: 146\n",
      "hello world: 147\n",
      "hello world: 148\n",
      "hello world: 149\n",
      "hello world: 150\n",
      "hello world: 151\n",
      "hello world: 152\n",
      "hello world: 153\n",
      "hello world: 154\n",
      "hello world: 155\n",
      "hello world: 156\n",
      "hello world: 157\n",
      "hello world: 158\n",
      "hello world: 159\n",
      "hello world: 160\n",
      "hello world: 161\n",
      "hello world: 162\n",
      "hello world: 163\n",
      "hello world: 164\n",
      "hello world: 165\n",
      "hello world: 166\n",
      "hello world: 167\n",
      "hello world: 168\n",
      "hello world: 169\n",
      "hello world: 170\n",
      "hello world: 171\n",
      "hello world: 172\n",
      "hello world: 173\n",
      "hello world: 174\n",
      "hello world: 175\n",
      "hello world: 176\n",
      "hello world: 177\n",
      "hello world: 178\n",
      "hello world: 179\n",
      "hello world: 180\n",
      "hello world: 181\n",
      "hello world: 182\n",
      "hello world: 183\n",
      "hello world: 184\n",
      "hello world: 185\n",
      "hello world: 186\n",
      "hello world: 187\n",
      "hello world: 188\n",
      "hello world: 189\n",
      "hello world: 190\n",
      "hello world: 191\n",
      "hello world: 192\n",
      "hello world: 193\n",
      "hello world: 194\n",
      "hello world: 195\n",
      "hello world: 196\n",
      "hello world: 197\n",
      "hello world: 198\n",
      "hello world: 199\n",
      "hello world: 200\n",
      "hello world: 201\n",
      "hello world: 202\n",
      "hello world: 203\n",
      "hello world: 204\n",
      "hello world: 205\n",
      "hello world: 206\n",
      "hello world: 207\n",
      "hello world: 208\n",
      "hello world: 209\n",
      "hello world: 210\n",
      "hello world: 211\n",
      "hello world: 212\n",
      "hello world: 213\n",
      "hello world: 214\n",
      "hello world: 215\n",
      "hello world: 216\n",
      "hello world: 217\n",
      "hello world: 218\n",
      "hello world: 219\n",
      "hello world: 220\n",
      "hello world: 221\n",
      "hello world: 222\n",
      "hello world: 223\n",
      "hello world: 224\n",
      "hello world: 225\n",
      "hello world: 226\n",
      "hello world: 227\n",
      "hello world: 228\n",
      "hello world: 229\n",
      "hello world: 230\n",
      "hello world: 231\n",
      "hello world: 232\n",
      "hello world: 233\n",
      "hello world: 234\n",
      "hello world: 235\n",
      "hello world: 236\n",
      "hello world: 237\n",
      "hello world: 238\n",
      "hello world: 239\n",
      "hello world: 240\n",
      "hello world: 241\n",
      "hello world: 242\n",
      "hello world: 243\n",
      "hello world: 244\n",
      "hello world: 245\n",
      "hello world: 246\n",
      "hello world: 247\n",
      "hello world: 248\n",
      "hello world: 249\n",
      "hello world: 250\n",
      "hello world: 251\n",
      "hello world: 252\n",
      "hello world: 253\n",
      "hello world: 254\n",
      "hello world: 255\n",
      "hello world: 256\n",
      "hello world: 257\n",
      "hello world: 258\n",
      "hello world: 259\n",
      "hello world: 260\n",
      "hello world: 261\n",
      "hello world: 262\n",
      "hello world: 263\n",
      "hello world: 264\n",
      "hello world: 265\n",
      "hello world: 266\n",
      "hello world: 267\n",
      "hello world: 268\n",
      "hello world: 269\n",
      "hello world: 270\n",
      "hello world: 271\n",
      "hello world: 272\n",
      "hello world: 273\n",
      "hello world: 274\n",
      "hello world: 275\n",
      "hello world: 276\n",
      "hello world: 277\n",
      "hello world: 278\n",
      "hello world: 279\n",
      "hello world: 280\n",
      "hello world: 281\n",
      "hello world: 282\n",
      "hello world: 283\n",
      "hello world: 284\n",
      "hello world: 285\n",
      "hello world: 286\n",
      "hello world: 287\n",
      "hello world: 288\n",
      "hello world: 289\n",
      "hello world: 290\n",
      "hello world: 291\n",
      "hello world: 292\n",
      "hello world: 293\n",
      "hello world: 294\n",
      "hello world: 295\n",
      "hello world: 296\n",
      "hello world: 297\n",
      "hello world: 298\n",
      "hello world: 299\n",
      "hello world: 300\n",
      "hello world: 301\n",
      "hello world: 302\n",
      "hello world: 303\n",
      "hello world: 304\n",
      "hello world: 305\n",
      "hello world: 306\n",
      "hello world: 307\n",
      "hello world: 308\n",
      "hello world: 309\n",
      "hello world: 310\n",
      "hello world: 311\n",
      "hello world: 312\n",
      "hello world: 313\n",
      "hello world: 314\n",
      "hello world: 315\n",
      "hello world: 316\n",
      "hello world: 317\n",
      "hello world: 318\n",
      "hello world: 319\n",
      "hello world: 320\n",
      "hello world: 321\n",
      "hello world: 322\n",
      "hello world: 323\n",
      "hello world: 324\n",
      "hello world: 325\n",
      "hello world: 326\n",
      "hello world: 327\n",
      "hello world: 328\n",
      "hello world: 329\n",
      "hello world: 330\n",
      "hello world: 331\n",
      "hello world: 332\n",
      "hello world: 333\n",
      "hello world: 334\n",
      "hello world: 335\n",
      "hello world: 336\n",
      "hello world: 337\n",
      "hello world: 338\n",
      "hello world: 339\n",
      "hello world: 340\n",
      "hello world: 341\n",
      "hello world: 342\n",
      "hello world: 343\n",
      "hello world: 344\n",
      "hello world: 345\n",
      "hello world: 346\n",
      "hello world: 347\n",
      "hello world: 348\n",
      "hello world: 349\n",
      "hello world: 350\n",
      "hello world: 351\n",
      "hello world: 352\n",
      "hello world: 353\n",
      "hello world: 354\n",
      "hello world: 355\n",
      "hello world: 356\n",
      "hello world: 357\n",
      "hello world: 358\n",
      "hello world: 359\n",
      "hello world: 360\n",
      "hello world: 361\n",
      "hello world: 362\n",
      "hello world: 363\n",
      "hello world: 364\n",
      "hello world: 365\n",
      "hello world: 366\n",
      "hello world: 367\n",
      "hello world: 368\n",
      "hello world: 369\n",
      "hello world: 370\n",
      "hello world: 371\n",
      "hello world: 372\n",
      "hello world: 373\n",
      "hello world: 374\n",
      "hello world: 375\n",
      "hello world: 376\n",
      "hello world: 377\n",
      "hello world: 378\n",
      "hello world: 379\n",
      "hello world: 380\n",
      "hello world: 381\n",
      "hello world: 382\n",
      "hello world: 383\n",
      "hello world: 384\n",
      "hello world: 385\n",
      "hello world: 386\n",
      "hello world: 387\n",
      "hello world: 388\n",
      "hello world: 389\n",
      "hello world: 390\n",
      "hello world: 391\n",
      "hello world: 392\n",
      "hello world: 393\n",
      "hello world: 394\n",
      "hello world: 395\n",
      "hello world: 396\n",
      "hello world: 397\n",
      "hello world: 398\n",
      "hello world: 399\n",
      "hello world: 400\n",
      "hello world: 401\n",
      "hello world: 402\n",
      "hello world: 403\n",
      "hello world: 404\n",
      "hello world: 405\n",
      "hello world: 406\n",
      "hello world: 407\n",
      "hello world: 408\n",
      "hello world: 409\n",
      "hello world: 410\n",
      "hello world: 411\n",
      "hello world: 412\n",
      "hello world: 413\n",
      "hello world: 414\n",
      "hello world: 415\n",
      "hello world: 416\n",
      "hello world: 417\n",
      "hello world: 418\n",
      "hello world: 419\n",
      "hello world: 420\n",
      "hello world: 421\n",
      "hello world: 422\n",
      "hello world: 423\n",
      "hello world: 424\n",
      "hello world: 425\n",
      "hello world: 426\n",
      "hello world: 427\n",
      "hello world: 428\n",
      "hello world: 429\n",
      "hello world: 430\n",
      "hello world: 431\n",
      "hello world: 432\n",
      "hello world: 433\n",
      "hello world: 434\n",
      "hello world: 435\n",
      "hello world: 436\n",
      "hello world: 437\n",
      "hello world: 438\n",
      "hello world: 439\n",
      "hello world: 440\n",
      "hello world: 441\n",
      "hello world: 442\n",
      "hello world: 443\n",
      "hello world: 444\n",
      "hello world: 445\n",
      "hello world: 446\n",
      "hello world: 447\n",
      "hello world: 448\n",
      "hello world: 449\n",
      "hello world: 450\n",
      "hello world: 451\n",
      "hello world: 452\n",
      "hello world: 453\n",
      "hello world: 454\n",
      "hello world: 455\n",
      "hello world: 456\n",
      "hello world: 457\n",
      "hello world: 458\n",
      "hello world: 459\n",
      "hello world: 460\n",
      "hello world: 461\n",
      "hello world: 462\n",
      "hello world: 463\n",
      "hello world: 464\n",
      "hello world: 465\n",
      "hello world: 466\n",
      "hello world: 467\n",
      "hello world: 468\n",
      "hello world: 469\n",
      "hello world: 470\n",
      "hello world: 471\n",
      "hello world: 472\n",
      "hello world: 473\n",
      "hello world: 474\n",
      "hello world: 475\n",
      "hello world: 476\n",
      "hello world: 477\n",
      "hello world: 478\n",
      "hello world: 479\n",
      "hello world: 480\n",
      "hello world: 481\n",
      "hello world: 482\n",
      "hello world: 483\n",
      "hello world: 484\n",
      "hello world: 485\n",
      "hello world: 486\n",
      "hello world: 487\n",
      "hello world: 488\n",
      "hello world: 489\n",
      "hello world: 490\n",
      "hello world: 491\n",
      "hello world: 492\n",
      "hello world: 493\n",
      "hello world: 494\n",
      "hello world: 495\n",
      "hello world: 496\n",
      "hello world: 497\n",
      "hello world: 498\n",
      "hello world: 499\n",
      "hello world: 500\n",
      "hello world: 501\n",
      "hello world: 502\n",
      "hello world: 503\n",
      "hello world: 504\n",
      "hello world: 505\n",
      "hello world: 506\n",
      "hello world: 507\n",
      "hello world: 508\n",
      "hello world: 509\n",
      "hello world: 510\n",
      "hello world: 511\n",
      "hello world: 512\n",
      "hello world: 513\n",
      "hello world: 514\n",
      "hello world: 515\n",
      "hello world: 516\n",
      "hello world: 517\n",
      "hello world: 518\n",
      "hello world: 519\n",
      "hello world: 520\n",
      "hello world: 521\n",
      "hello world: 522\n",
      "hello world: 523\n",
      "hello world: 524\n",
      "hello world: 525\n",
      "hello world: 526\n",
      "hello world: 527\n",
      "hello world: 528\n",
      "hello world: 529\n",
      "hello world: 530\n",
      "hello world: 531\n",
      "hello world: 532\n",
      "hello world: 533\n",
      "hello world: 534\n",
      "hello world: 535\n",
      "hello world: 536\n",
      "hello world: 537\n",
      "hello world: 538\n",
      "hello world: 539\n",
      "hello world: 540\n",
      "hello world: 541\n",
      "hello world: 542\n",
      "hello world: 543\n",
      "hello world: 544\n",
      "hello world: 545\n",
      "hello world: 546\n",
      "hello world: 547\n",
      "hello world: 548\n",
      "hello world: 549\n",
      "hello world: 550\n",
      "hello world: 551\n",
      "hello world: 552\n",
      "hello world: 553\n",
      "hello world: 554\n",
      "hello world: 555\n",
      "hello world: 556\n",
      "hello world: 557\n",
      "hello world: 558\n",
      "hello world: 559\n",
      "hello world: 560\n",
      "hello world: 561\n",
      "hello world: 562\n",
      "hello world: 563\n",
      "hello world: 564\n",
      "hello world: 565\n",
      "hello world: 566\n",
      "hello world: 567\n",
      "hello world: 568\n",
      "hello world: 569\n",
      "hello world: 570\n",
      "hello world: 571\n",
      "hello world: 572\n",
      "hello world: 573\n",
      "hello world: 574\n",
      "hello world: 575\n",
      "hello world: 576\n",
      "hello world: 577\n",
      "hello world: 578\n",
      "hello world: 579\n",
      "hello world: 580\n",
      "hello world: 581\n",
      "hello world: 582\n",
      "hello world: 583\n",
      "hello world: 584\n",
      "hello world: 585\n",
      "hello world: 586\n",
      "hello world: 587\n",
      "hello world: 588\n",
      "hello world: 589\n",
      "hello world: 590\n",
      "hello world: 591\n",
      "hello world: 592\n",
      "hello world: 593\n",
      "hello world: 594\n",
      "hello world: 595\n",
      "hello world: 596\n",
      "hello world: 597\n",
      "hello world: 598\n",
      "hello world: 599\n",
      "hello world: 600\n",
      "hello world: 601\n",
      "hello world: 602\n",
      "hello world: 603\n",
      "hello world: 604\n",
      "hello world: 605\n",
      "hello world: 606\n",
      "hello world: 607\n",
      "hello world: 608\n",
      "hello world: 609\n",
      "hello world: 610\n",
      "hello world: 611\n",
      "hello world: 612\n",
      "hello world: 613\n",
      "hello world: 614\n",
      "hello world: 615\n",
      "hello world: 616\n",
      "hello world: 617\n",
      "hello world: 618\n",
      "hello world: 619\n",
      "hello world: 620\n",
      "hello world: 621\n",
      "hello world: 622\n",
      "hello world: 623\n",
      "hello world: 624\n",
      "hello world: 625\n",
      "hello world: 626\n",
      "hello world: 627\n",
      "hello world: 628\n",
      "hello world: 629\n",
      "hello world: 630\n",
      "hello world: 631\n",
      "hello world: 632\n",
      "hello world: 633\n",
      "hello world: 634\n",
      "hello world: 635\n",
      "hello world: 636\n",
      "hello world: 637\n",
      "hello world: 638\n",
      "hello world: 639\n",
      "hello world: 640\n",
      "hello world: 641\n",
      "hello world: 642\n",
      "hello world: 643\n",
      "hello world: 644\n",
      "hello world: 645\n",
      "hello world: 646\n",
      "hello world: 647\n",
      "hello world: 648\n",
      "hello world: 649\n",
      "hello world: 650\n",
      "hello world: 651\n",
      "hello world: 652\n",
      "hello world: 653\n",
      "hello world: 654\n",
      "hello world: 655\n",
      "hello world: 656\n",
      "hello world: 657\n",
      "hello world: 658\n",
      "hello world: 659\n",
      "hello world: 660\n",
      "hello world: 661\n",
      "hello world: 662\n",
      "hello world: 663\n",
      "hello world: 664\n",
      "hello world: 665\n",
      "hello world: 666\n",
      "hello world: 667\n",
      "hello world: 668\n",
      "hello world: 669\n",
      "hello world: 670\n",
      "hello world: 671\n",
      "hello world: 672\n",
      "hello world: 673\n",
      "hello world: 674\n",
      "hello world: 675\n",
      "hello world: 676\n",
      "hello world: 677\n",
      "hello world: 678\n",
      "hello world: 679\n",
      "hello world: 680\n",
      "hello world: 681\n",
      "hello world: 682\n",
      "hello world: 683\n",
      "hello world: 684\n",
      "hello world: 685\n",
      "hello world: 686\n",
      "hello world: 687\n",
      "hello world: 688\n",
      "hello world: 689\n",
      "hello world: 690\n",
      "hello world: 691\n",
      "hello world: 692\n",
      "hello world: 693\n",
      "hello world: 694\n",
      "hello world: 695\n",
      "hello world: 696\n",
      "hello world: 697\n",
      "hello world: 698\n",
      "hello world: 699\n",
      "hello world: 700\n",
      "hello world: 701\n",
      "hello world: 702\n",
      "hello world: 703\n",
      "hello world: 704\n",
      "hello world: 705\n",
      "hello world: 706\n",
      "hello world: 707\n",
      "hello world: 708\n",
      "hello world: 709\n",
      "hello world: 710\n",
      "hello world: 711\n",
      "hello world: 712\n",
      "hello world: 713\n",
      "hello world: 714\n",
      "hello world: 715\n",
      "hello world: 716\n",
      "hello world: 717\n",
      "hello world: 718\n",
      "hello world: 719\n",
      "hello world: 720\n",
      "hello world: 721\n",
      "hello world: 722\n",
      "hello world: 723\n",
      "hello world: 724\n",
      "hello world: 725\n",
      "hello world: 726\n",
      "hello world: 727\n",
      "hello world: 728\n",
      "hello world: 729\n",
      "hello world: 730\n",
      "hello world: 731\n",
      "hello world: 732\n",
      "hello world: 733\n",
      "hello world: 734\n",
      "hello world: 735\n",
      "hello world: 736\n",
      "hello world: 737\n",
      "hello world: 738\n",
      "hello world: 739\n",
      "hello world: 740\n",
      "hello world: 741\n",
      "hello world: 742\n",
      "hello world: 743\n",
      "hello world: 744\n",
      "hello world: 745\n",
      "hello world: 746\n",
      "hello world: 747\n",
      "hello world: 748\n",
      "hello world: 749\n",
      "hello world: 750\n",
      "hello world: 751\n",
      "hello world: 752\n",
      "hello world: 753\n",
      "hello world: 754\n",
      "hello world: 755\n",
      "hello world: 756\n",
      "hello world: 757\n",
      "hello world: 758\n",
      "hello world: 759\n",
      "hello world: 760\n",
      "hello world: 761\n",
      "hello world: 762\n",
      "hello world: 763\n",
      "hello world: 764\n",
      "hello world: 765\n",
      "hello world: 766\n",
      "hello world: 767\n",
      "hello world: 768\n",
      "hello world: 769\n",
      "hello world: 770\n",
      "hello world: 771\n",
      "hello world: 772\n",
      "hello world: 773\n",
      "hello world: 774\n",
      "hello world: 775\n",
      "hello world: 776\n",
      "hello world: 777\n",
      "hello world: 778\n",
      "hello world: 779\n",
      "hello world: 780\n",
      "hello world: 781\n",
      "hello world: 782\n",
      "hello world: 783\n",
      "hello world: 784\n",
      "hello world: 785\n",
      "hello world: 786\n",
      "hello world: 787\n",
      "hello world: 788\n",
      "hello world: 789\n",
      "hello world: 790\n",
      "hello world: 791\n",
      "hello world: 792\n",
      "hello world: 793\n",
      "hello world: 794\n",
      "hello world: 795\n",
      "hello world: 796\n",
      "hello world: 797\n",
      "hello world: 798\n",
      "hello world: 799\n",
      "hello world: 800\n",
      "hello world: 801\n",
      "hello world: 802\n",
      "hello world: 803\n",
      "hello world: 804\n",
      "hello world: 805\n",
      "hello world: 806\n",
      "hello world: 807\n",
      "hello world: 808\n",
      "hello world: 809\n",
      "hello world: 810\n",
      "hello world: 811\n",
      "hello world: 812\n",
      "hello world: 813\n",
      "hello world: 814\n",
      "hello world: 815\n",
      "hello world: 816\n",
      "hello world: 817\n",
      "hello world: 818\n",
      "hello world: 819\n",
      "hello world: 820\n",
      "hello world: 821\n",
      "hello world: 822\n",
      "hello world: 823\n",
      "hello world: 824\n",
      "hello world: 825\n",
      "hello world: 826\n",
      "hello world: 827\n",
      "hello world: 828\n",
      "hello world: 829\n",
      "hello world: 830\n",
      "hello world: 831\n",
      "hello world: 832\n",
      "hello world: 833\n",
      "hello world: 834\n",
      "hello world: 835\n",
      "hello world: 836\n",
      "hello world: 837\n",
      "hello world: 838\n",
      "hello world: 839\n",
      "hello world: 840\n",
      "hello world: 841\n",
      "hello world: 842\n",
      "hello world: 843\n",
      "hello world: 844\n",
      "hello world: 845\n",
      "hello world: 846\n",
      "hello world: 847\n",
      "hello world: 848\n",
      "hello world: 849\n",
      "hello world: 850\n",
      "hello world: 851\n",
      "hello world: 852\n",
      "hello world: 853\n",
      "hello world: 854\n",
      "hello world: 855\n",
      "hello world: 856\n",
      "hello world: 857\n",
      "hello world: 858\n",
      "hello world: 859\n",
      "hello world: 860\n",
      "hello world: 861\n",
      "hello world: 862\n",
      "hello world: 863\n",
      "hello world: 864\n",
      "hello world: 865\n",
      "hello world: 866\n",
      "hello world: 867\n",
      "hello world: 868\n",
      "hello world: 869\n",
      "hello world: 870\n",
      "hello world: 871\n",
      "hello world: 872\n",
      "hello world: 873\n",
      "hello world: 874\n",
      "hello world: 875\n",
      "hello world: 876\n",
      "hello world: 877\n",
      "hello world: 878\n",
      "hello world: 879\n",
      "hello world: 880\n",
      "hello world: 881\n",
      "hello world: 882\n",
      "hello world: 883\n",
      "hello world: 884\n",
      "hello world: 885\n",
      "hello world: 886\n",
      "hello world: 887\n",
      "hello world: 888\n",
      "hello world: 889\n",
      "hello world: 890\n",
      "hello world: 891\n",
      "hello world: 892\n",
      "hello world: 893\n",
      "hello world: 894\n",
      "hello world: 895\n",
      "hello world: 896\n",
      "hello world: 897\n",
      "hello world: 898\n",
      "hello world: 899\n",
      "hello world: 900\n",
      "hello world: 901\n",
      "hello world: 902\n",
      "hello world: 903\n",
      "hello world: 904\n",
      "hello world: 905\n",
      "hello world: 906\n",
      "hello world: 907\n",
      "hello world: 908\n",
      "hello world: 909\n",
      "hello world: 910\n",
      "hello world: 911\n",
      "hello world: 912\n",
      "hello world: 913\n",
      "hello world: 914\n",
      "hello world: 915\n",
      "hello world: 916\n",
      "hello world: 917\n",
      "hello world: 918\n",
      "hello world: 919\n",
      "hello world: 920\n",
      "hello world: 921\n",
      "hello world: 922\n",
      "hello world: 923\n",
      "hello world: 924\n",
      "hello world: 925\n",
      "hello world: 926\n",
      "hello world: 927\n",
      "hello world: 928\n",
      "hello world: 929\n",
      "hello world: 930\n",
      "hello world: 931\n",
      "hello world: 932\n",
      "hello world: 933\n",
      "hello world: 934\n",
      "hello world: 935\n",
      "hello world: 936\n",
      "hello world: 937\n",
      "hello world: 938\n",
      "hello world: 939\n",
      "hello world: 940\n",
      "hello world: 941\n",
      "hello world: 942\n",
      "hello world: 943\n",
      "hello world: 944\n",
      "hello world: 945\n",
      "hello world: 946\n",
      "hello world: 947\n",
      "hello world: 948\n",
      "hello world: 949\n",
      "hello world: 950\n",
      "hello world: 951\n",
      "hello world: 952\n",
      "hello world: 953\n",
      "hello world: 954\n",
      "hello world: 955\n",
      "hello world: 956\n",
      "hello world: 957\n",
      "hello world: 958\n",
      "hello world: 959\n",
      "hello world: 960\n",
      "hello world: 961\n",
      "hello world: 962\n",
      "hello world: 963\n",
      "hello world: 964\n",
      "hello world: 965\n",
      "hello world: 966\n",
      "hello world: 967\n",
      "hello world: 968\n",
      "hello world: 969\n",
      "hello world: 970\n",
      "hello world: 971\n",
      "hello world: 972\n",
      "hello world: 973\n",
      "hello world: 974\n",
      "hello world: 975\n",
      "hello world: 976\n",
      "hello world: 977\n",
      "hello world: 978\n",
      "hello world: 979\n",
      "hello world: 980\n",
      "hello world: 981\n",
      "hello world: 982\n",
      "hello world: 983\n",
      "hello world: 984\n",
      "hello world: 985\n",
      "hello world: 986\n",
      "hello world: 987\n",
      "hello world: 988\n",
      "hello world: 989\n",
      "hello world: 990\n",
      "hello world: 991\n",
      "hello world: 992\n",
      "hello world: 993\n",
      "hello world: 994\n",
      "hello world: 995\n",
      "hello world: 996\n",
      "hello world: 997\n",
      "hello world: 998\n",
      "hello world: 999\n",
      "\n"
     ]
    }
   ],
   "source": [
    "g = open('newfile.txt', 'r')\n",
    "print g.read()\n",
    "g.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## with 方法"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "事实上，**Python**提供了更安全的方法，当 `with` 块的内容结束后，**Python**会自动调用它的`close` 方法，确保读写的安全："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "ZeroDivisionError",
     "evalue": "float division by zero",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[1;31mZeroDivisionError\u001b[0m                         Traceback (most recent call last)",
      "\u001b[1;32m<ipython-input-24-9d2a70065b27>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m      1\u001b[0m \u001b[1;32mwith\u001b[0m \u001b[0mopen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'newfile.txt'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;34m'w'\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mas\u001b[0m \u001b[0mf\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m      2\u001b[0m     \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;36m3000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 3\u001b[1;33m         \u001b[0mx\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1.0\u001b[0m \u001b[1;33m/\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m \u001b[1;33m-\u001b[0m \u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m      4\u001b[0m         \u001b[0mf\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'hello world: '\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mstr\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[1;34m'\\n'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[1;31mZeroDivisionError\u001b[0m: float division by zero"
     ]
    }
   ],
   "source": [
    "with open('newfile.txt','w') as f:\n",
    "    for i in range(3000):\n",
    "        x = 1.0 / (i - 1000)\n",
    "        f.write('hello world: ' + str(i) + '\\n')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "与 `try/exception/finally` 效果相同，但更简单。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "hello world: 0\n",
      "hello world: 1\n",
      "hello world: 2\n",
      "hello world: 3\n",
      "hello world: 4\n",
      "hello world: 5\n",
      "hello world: 6\n",
      "hello world: 7\n",
      "hello world: 8\n",
      "hello world: 9\n",
      "hello world: 10\n",
      "hello world: 11\n",
      "hello world: 12\n",
      "hello world: 13\n",
      "hello world: 14\n",
      "hello world: 15\n",
      "hello world: 16\n",
      "hello world: 17\n",
      "hello world: 18\n",
      "hello world: 19\n",
      "hello world: 20\n",
      "hello world: 21\n",
      "hello world: 22\n",
      "hello world: 23\n",
      "hello world: 24\n",
      "hello world: 25\n",
      "hello world: 26\n",
      "hello world: 27\n",
      "hello world: 28\n",
      "hello world: 29\n",
      "hello world: 30\n",
      "hello world: 31\n",
      "hello world: 32\n",
      "hello world: 33\n",
      "hello world: 34\n",
      "hello world: 35\n",
      "hello world: 36\n",
      "hello world: 37\n",
      "hello world: 38\n",
      "hello world: 39\n",
      "hello world: 40\n",
      "hello world: 41\n",
      "hello world: 42\n",
      "hello world: 43\n",
      "hello world: 44\n",
      "hello world: 45\n",
      "hello world: 46\n",
      "hello world: 47\n",
      "hello world: 48\n",
      "hello world: 49\n",
      "hello world: 50\n",
      "hello world: 51\n",
      "hello world: 52\n",
      "hello world: 53\n",
      "hello world: 54\n",
      "hello world: 55\n",
      "hello world: 56\n",
      "hello world: 57\n",
      "hello world: 58\n",
      "hello world: 59\n",
      "hello world: 60\n",
      "hello world: 61\n",
      "hello world: 62\n",
      "hello world: 63\n",
      "hello world: 64\n",
      "hello world: 65\n",
      "hello world: 66\n",
      "hello world: 67\n",
      "hello world: 68\n",
      "hello world: 69\n",
      "hello world: 70\n",
      "hello world: 71\n",
      "hello world: 72\n",
      "hello world: 73\n",
      "hello world: 74\n",
      "hello world: 75\n",
      "hello world: 76\n",
      "hello world: 77\n",
      "hello world: 78\n",
      "hello world: 79\n",
      "hello world: 80\n",
      "hello world: 81\n",
      "hello world: 82\n",
      "hello world: 83\n",
      "hello world: 84\n",
      "hello world: 85\n",
      "hello world: 86\n",
      "hello world: 87\n",
      "hello world: 88\n",
      "hello world: 89\n",
      "hello world: 90\n",
      "hello world: 91\n",
      "hello world: 92\n",
      "hello world: 93\n",
      "hello world: 94\n",
      "hello world: 95\n",
      "hello world: 96\n",
      "hello world: 97\n",
      "hello world: 98\n",
      "hello world: 99\n",
      "hello world: 100\n",
      "hello world: 101\n",
      "hello world: 102\n",
      "hello world: 103\n",
      "hello world: 104\n",
      "hello world: 105\n",
      "hello world: 106\n",
      "hello world: 107\n",
      "hello world: 108\n",
      "hello world: 109\n",
      "hello world: 110\n",
      "hello world: 111\n",
      "hello world: 112\n",
      "hello world: 113\n",
      "hello world: 114\n",
      "hello world: 115\n",
      "hello world: 116\n",
      "hello world: 117\n",
      "hello world: 118\n",
      "hello world: 119\n",
      "hello world: 120\n",
      "hello world: 121\n",
      "hello world: 122\n",
      "hello world: 123\n",
      "hello world: 124\n",
      "hello world: 125\n",
      "hello world: 126\n",
      "hello world: 127\n",
      "hello world: 128\n",
      "hello world: 129\n",
      "hello world: 130\n",
      "hello world: 131\n",
      "hello world: 132\n",
      "hello world: 133\n",
      "hello world: 134\n",
      "hello world: 135\n",
      "hello world: 136\n",
      "hello world: 137\n",
      "hello world: 138\n",
      "hello world: 139\n",
      "hello world: 140\n",
      "hello world: 141\n",
      "hello world: 142\n",
      "hello world: 143\n",
      "hello world: 144\n",
      "hello world: 145\n",
      "hello world: 146\n",
      "hello world: 147\n",
      "hello world: 148\n",
      "hello world: 149\n",
      "hello world: 150\n",
      "hello world: 151\n",
      "hello world: 152\n",
      "hello world: 153\n",
      "hello world: 154\n",
      "hello world: 155\n",
      "hello world: 156\n",
      "hello world: 157\n",
      "hello world: 158\n",
      "hello world: 159\n",
      "hello world: 160\n",
      "hello world: 161\n",
      "hello world: 162\n",
      "hello world: 163\n",
      "hello world: 164\n",
      "hello world: 165\n",
      "hello world: 166\n",
      "hello world: 167\n",
      "hello world: 168\n",
      "hello world: 169\n",
      "hello world: 170\n",
      "hello world: 171\n",
      "hello world: 172\n",
      "hello world: 173\n",
      "hello world: 174\n",
      "hello world: 175\n",
      "hello world: 176\n",
      "hello world: 177\n",
      "hello world: 178\n",
      "hello world: 179\n",
      "hello world: 180\n",
      "hello world: 181\n",
      "hello world: 182\n",
      "hello world: 183\n",
      "hello world: 184\n",
      "hello world: 185\n",
      "hello world: 186\n",
      "hello world: 187\n",
      "hello world: 188\n",
      "hello world: 189\n",
      "hello world: 190\n",
      "hello world: 191\n",
      "hello world: 192\n",
      "hello world: 193\n",
      "hello world: 194\n",
      "hello world: 195\n",
      "hello world: 196\n",
      "hello world: 197\n",
      "hello world: 198\n",
      "hello world: 199\n",
      "hello world: 200\n",
      "hello world: 201\n",
      "hello world: 202\n",
      "hello world: 203\n",
      "hello world: 204\n",
      "hello world: 205\n",
      "hello world: 206\n",
      "hello world: 207\n",
      "hello world: 208\n",
      "hello world: 209\n",
      "hello world: 210\n",
      "hello world: 211\n",
      "hello world: 212\n",
      "hello world: 213\n",
      "hello world: 214\n",
      "hello world: 215\n",
      "hello world: 216\n",
      "hello world: 217\n",
      "hello world: 218\n",
      "hello world: 219\n",
      "hello world: 220\n",
      "hello world: 221\n",
      "hello world: 222\n",
      "hello world: 223\n",
      "hello world: 224\n",
      "hello world: 225\n",
      "hello world: 226\n",
      "hello world: 227\n",
      "hello world: 228\n",
      "hello world: 229\n",
      "hello world: 230\n",
      "hello world: 231\n",
      "hello world: 232\n",
      "hello world: 233\n",
      "hello world: 234\n",
      "hello world: 235\n",
      "hello world: 236\n",
      "hello world: 237\n",
      "hello world: 238\n",
      "hello world: 239\n",
      "hello world: 240\n",
      "hello world: 241\n",
      "hello world: 242\n",
      "hello world: 243\n",
      "hello world: 244\n",
      "hello world: 245\n",
      "hello world: 246\n",
      "hello world: 247\n",
      "hello world: 248\n",
      "hello world: 249\n",
      "hello world: 250\n",
      "hello world: 251\n",
      "hello world: 252\n",
      "hello world: 253\n",
      "hello world: 254\n",
      "hello world: 255\n",
      "hello world: 256\n",
      "hello world: 257\n",
      "hello world: 258\n",
      "hello world: 259\n",
      "hello world: 260\n",
      "hello world: 261\n",
      "hello world: 262\n",
      "hello world: 263\n",
      "hello world: 264\n",
      "hello world: 265\n",
      "hello world: 266\n",
      "hello world: 267\n",
      "hello world: 268\n",
      "hello world: 269\n",
      "hello world: 270\n",
      "hello world: 271\n",
      "hello world: 272\n",
      "hello world: 273\n",
      "hello world: 274\n",
      "hello world: 275\n",
      "hello world: 276\n",
      "hello world: 277\n",
      "hello world: 278\n",
      "hello world: 279\n",
      "hello world: 280\n",
      "hello world: 281\n",
      "hello world: 282\n",
      "hello world: 283\n",
      "hello world: 284\n",
      "hello world: 285\n",
      "hello world: 286\n",
      "hello world: 287\n",
      "hello world: 288\n",
      "hello world: 289\n",
      "hello world: 290\n",
      "hello world: 291\n",
      "hello world: 292\n",
      "hello world: 293\n",
      "hello world: 294\n",
      "hello world: 295\n",
      "hello world: 296\n",
      "hello world: 297\n",
      "hello world: 298\n",
      "hello world: 299\n",
      "hello world: 300\n",
      "hello world: 301\n",
      "hello world: 302\n",
      "hello world: 303\n",
      "hello world: 304\n",
      "hello world: 305\n",
      "hello world: 306\n",
      "hello world: 307\n",
      "hello world: 308\n",
      "hello world: 309\n",
      "hello world: 310\n",
      "hello world: 311\n",
      "hello world: 312\n",
      "hello world: 313\n",
      "hello world: 314\n",
      "hello world: 315\n",
      "hello world: 316\n",
      "hello world: 317\n",
      "hello world: 318\n",
      "hello world: 319\n",
      "hello world: 320\n",
      "hello world: 321\n",
      "hello world: 322\n",
      "hello world: 323\n",
      "hello world: 324\n",
      "hello world: 325\n",
      "hello world: 326\n",
      "hello world: 327\n",
      "hello world: 328\n",
      "hello world: 329\n",
      "hello world: 330\n",
      "hello world: 331\n",
      "hello world: 332\n",
      "hello world: 333\n",
      "hello world: 334\n",
      "hello world: 335\n",
      "hello world: 336\n",
      "hello world: 337\n",
      "hello world: 338\n",
      "hello world: 339\n",
      "hello world: 340\n",
      "hello world: 341\n",
      "hello world: 342\n",
      "hello world: 343\n",
      "hello world: 344\n",
      "hello world: 345\n",
      "hello world: 346\n",
      "hello world: 347\n",
      "hello world: 348\n",
      "hello world: 349\n",
      "hello world: 350\n",
      "hello world: 351\n",
      "hello world: 352\n",
      "hello world: 353\n",
      "hello world: 354\n",
      "hello world: 355\n",
      "hello world: 356\n",
      "hello world: 357\n",
      "hello world: 358\n",
      "hello world: 359\n",
      "hello world: 360\n",
      "hello world: 361\n",
      "hello world: 362\n",
      "hello world: 363\n",
      "hello world: 364\n",
      "hello world: 365\n",
      "hello world: 366\n",
      "hello world: 367\n",
      "hello world: 368\n",
      "hello world: 369\n",
      "hello world: 370\n",
      "hello world: 371\n",
      "hello world: 372\n",
      "hello world: 373\n",
      "hello world: 374\n",
      "hello world: 375\n",
      "hello world: 376\n",
      "hello world: 377\n",
      "hello world: 378\n",
      "hello world: 379\n",
      "hello world: 380\n",
      "hello world: 381\n",
      "hello world: 382\n",
      "hello world: 383\n",
      "hello world: 384\n",
      "hello world: 385\n",
      "hello world: 386\n",
      "hello world: 387\n",
      "hello world: 388\n",
      "hello world: 389\n",
      "hello world: 390\n",
      "hello world: 391\n",
      "hello world: 392\n",
      "hello world: 393\n",
      "hello world: 394\n",
      "hello world: 395\n",
      "hello world: 396\n",
      "hello world: 397\n",
      "hello world: 398\n",
      "hello world: 399\n",
      "hello world: 400\n",
      "hello world: 401\n",
      "hello world: 402\n",
      "hello world: 403\n",
      "hello world: 404\n",
      "hello world: 405\n",
      "hello world: 406\n",
      "hello world: 407\n",
      "hello world: 408\n",
      "hello world: 409\n",
      "hello world: 410\n",
      "hello world: 411\n",
      "hello world: 412\n",
      "hello world: 413\n",
      "hello world: 414\n",
      "hello world: 415\n",
      "hello world: 416\n",
      "hello world: 417\n",
      "hello world: 418\n",
      "hello world: 419\n",
      "hello world: 420\n",
      "hello world: 421\n",
      "hello world: 422\n",
      "hello world: 423\n",
      "hello world: 424\n",
      "hello world: 425\n",
      "hello world: 426\n",
      "hello world: 427\n",
      "hello world: 428\n",
      "hello world: 429\n",
      "hello world: 430\n",
      "hello world: 431\n",
      "hello world: 432\n",
      "hello world: 433\n",
      "hello world: 434\n",
      "hello world: 435\n",
      "hello world: 436\n",
      "hello world: 437\n",
      "hello world: 438\n",
      "hello world: 439\n",
      "hello world: 440\n",
      "hello world: 441\n",
      "hello world: 442\n",
      "hello world: 443\n",
      "hello world: 444\n",
      "hello world: 445\n",
      "hello world: 446\n",
      "hello world: 447\n",
      "hello world: 448\n",
      "hello world: 449\n",
      "hello world: 450\n",
      "hello world: 451\n",
      "hello world: 452\n",
      "hello world: 453\n",
      "hello world: 454\n",
      "hello world: 455\n",
      "hello world: 456\n",
      "hello world: 457\n",
      "hello world: 458\n",
      "hello world: 459\n",
      "hello world: 460\n",
      "hello world: 461\n",
      "hello world: 462\n",
      "hello world: 463\n",
      "hello world: 464\n",
      "hello world: 465\n",
      "hello world: 466\n",
      "hello world: 467\n",
      "hello world: 468\n",
      "hello world: 469\n",
      "hello world: 470\n",
      "hello world: 471\n",
      "hello world: 472\n",
      "hello world: 473\n",
      "hello world: 474\n",
      "hello world: 475\n",
      "hello world: 476\n",
      "hello world: 477\n",
      "hello world: 478\n",
      "hello world: 479\n",
      "hello world: 480\n",
      "hello world: 481\n",
      "hello world: 482\n",
      "hello world: 483\n",
      "hello world: 484\n",
      "hello world: 485\n",
      "hello world: 486\n",
      "hello world: 487\n",
      "hello world: 488\n",
      "hello world: 489\n",
      "hello world: 490\n",
      "hello world: 491\n",
      "hello world: 492\n",
      "hello world: 493\n",
      "hello world: 494\n",
      "hello world: 495\n",
      "hello world: 496\n",
      "hello world: 497\n",
      "hello world: 498\n",
      "hello world: 499\n",
      "hello world: 500\n",
      "hello world: 501\n",
      "hello world: 502\n",
      "hello world: 503\n",
      "hello world: 504\n",
      "hello world: 505\n",
      "hello world: 506\n",
      "hello world: 507\n",
      "hello world: 508\n",
      "hello world: 509\n",
      "hello world: 510\n",
      "hello world: 511\n",
      "hello world: 512\n",
      "hello world: 513\n",
      "hello world: 514\n",
      "hello world: 515\n",
      "hello world: 516\n",
      "hello world: 517\n",
      "hello world: 518\n",
      "hello world: 519\n",
      "hello world: 520\n",
      "hello world: 521\n",
      "hello world: 522\n",
      "hello world: 523\n",
      "hello world: 524\n",
      "hello world: 525\n",
      "hello world: 526\n",
      "hello world: 527\n",
      "hello world: 528\n",
      "hello world: 529\n",
      "hello world: 530\n",
      "hello world: 531\n",
      "hello world: 532\n",
      "hello world: 533\n",
      "hello world: 534\n",
      "hello world: 535\n",
      "hello world: 536\n",
      "hello world: 537\n",
      "hello world: 538\n",
      "hello world: 539\n",
      "hello world: 540\n",
      "hello world: 541\n",
      "hello world: 542\n",
      "hello world: 543\n",
      "hello world: 544\n",
      "hello world: 545\n",
      "hello world: 546\n",
      "hello world: 547\n",
      "hello world: 548\n",
      "hello world: 549\n",
      "hello world: 550\n",
      "hello world: 551\n",
      "hello world: 552\n",
      "hello world: 553\n",
      "hello world: 554\n",
      "hello world: 555\n",
      "hello world: 556\n",
      "hello world: 557\n",
      "hello world: 558\n",
      "hello world: 559\n",
      "hello world: 560\n",
      "hello world: 561\n",
      "hello world: 562\n",
      "hello world: 563\n",
      "hello world: 564\n",
      "hello world: 565\n",
      "hello world: 566\n",
      "hello world: 567\n",
      "hello world: 568\n",
      "hello world: 569\n",
      "hello world: 570\n",
      "hello world: 571\n",
      "hello world: 572\n",
      "hello world: 573\n",
      "hello world: 574\n",
      "hello world: 575\n",
      "hello world: 576\n",
      "hello world: 577\n",
      "hello world: 578\n",
      "hello world: 579\n",
      "hello world: 580\n",
      "hello world: 581\n",
      "hello world: 582\n",
      "hello world: 583\n",
      "hello world: 584\n",
      "hello world: 585\n",
      "hello world: 586\n",
      "hello world: 587\n",
      "hello world: 588\n",
      "hello world: 589\n",
      "hello world: 590\n",
      "hello world: 591\n",
      "hello world: 592\n",
      "hello world: 593\n",
      "hello world: 594\n",
      "hello world: 595\n",
      "hello world: 596\n",
      "hello world: 597\n",
      "hello world: 598\n",
      "hello world: 599\n",
      "hello world: 600\n",
      "hello world: 601\n",
      "hello world: 602\n",
      "hello world: 603\n",
      "hello world: 604\n",
      "hello world: 605\n",
      "hello world: 606\n",
      "hello world: 607\n",
      "hello world: 608\n",
      "hello world: 609\n",
      "hello world: 610\n",
      "hello world: 611\n",
      "hello world: 612\n",
      "hello world: 613\n",
      "hello world: 614\n",
      "hello world: 615\n",
      "hello world: 616\n",
      "hello world: 617\n",
      "hello world: 618\n",
      "hello world: 619\n",
      "hello world: 620\n",
      "hello world: 621\n",
      "hello world: 622\n",
      "hello world: 623\n",
      "hello world: 624\n",
      "hello world: 625\n",
      "hello world: 626\n",
      "hello world: 627\n",
      "hello world: 628\n",
      "hello world: 629\n",
      "hello world: 630\n",
      "hello world: 631\n",
      "hello world: 632\n",
      "hello world: 633\n",
      "hello world: 634\n",
      "hello world: 635\n",
      "hello world: 636\n",
      "hello world: 637\n",
      "hello world: 638\n",
      "hello world: 639\n",
      "hello world: 640\n",
      "hello world: 641\n",
      "hello world: 642\n",
      "hello world: 643\n",
      "hello world: 644\n",
      "hello world: 645\n",
      "hello world: 646\n",
      "hello world: 647\n",
      "hello world: 648\n",
      "hello world: 649\n",
      "hello world: 650\n",
      "hello world: 651\n",
      "hello world: 652\n",
      "hello world: 653\n",
      "hello world: 654\n",
      "hello world: 655\n",
      "hello world: 656\n",
      "hello world: 657\n",
      "hello world: 658\n",
      "hello world: 659\n",
      "hello world: 660\n",
      "hello world: 661\n",
      "hello world: 662\n",
      "hello world: 663\n",
      "hello world: 664\n",
      "hello world: 665\n",
      "hello world: 666\n",
      "hello world: 667\n",
      "hello world: 668\n",
      "hello world: 669\n",
      "hello world: 670\n",
      "hello world: 671\n",
      "hello world: 672\n",
      "hello world: 673\n",
      "hello world: 674\n",
      "hello world: 675\n",
      "hello world: 676\n",
      "hello world: 677\n",
      "hello world: 678\n",
      "hello world: 679\n",
      "hello world: 680\n",
      "hello world: 681\n",
      "hello world: 682\n",
      "hello world: 683\n",
      "hello world: 684\n",
      "hello world: 685\n",
      "hello world: 686\n",
      "hello world: 687\n",
      "hello world: 688\n",
      "hello world: 689\n",
      "hello world: 690\n",
      "hello world: 691\n",
      "hello world: 692\n",
      "hello world: 693\n",
      "hello world: 694\n",
      "hello world: 695\n",
      "hello world: 696\n",
      "hello world: 697\n",
      "hello world: 698\n",
      "hello world: 699\n",
      "hello world: 700\n",
      "hello world: 701\n",
      "hello world: 702\n",
      "hello world: 703\n",
      "hello world: 704\n",
      "hello world: 705\n",
      "hello world: 706\n",
      "hello world: 707\n",
      "hello world: 708\n",
      "hello world: 709\n",
      "hello world: 710\n",
      "hello world: 711\n",
      "hello world: 712\n",
      "hello world: 713\n",
      "hello world: 714\n",
      "hello world: 715\n",
      "hello world: 716\n",
      "hello world: 717\n",
      "hello world: 718\n",
      "hello world: 719\n",
      "hello world: 720\n",
      "hello world: 721\n",
      "hello world: 722\n",
      "hello world: 723\n",
      "hello world: 724\n",
      "hello world: 725\n",
      "hello world: 726\n",
      "hello world: 727\n",
      "hello world: 728\n",
      "hello world: 729\n",
      "hello world: 730\n",
      "hello world: 731\n",
      "hello world: 732\n",
      "hello world: 733\n",
      "hello world: 734\n",
      "hello world: 735\n",
      "hello world: 736\n",
      "hello world: 737\n",
      "hello world: 738\n",
      "hello world: 739\n",
      "hello world: 740\n",
      "hello world: 741\n",
      "hello world: 742\n",
      "hello world: 743\n",
      "hello world: 744\n",
      "hello world: 745\n",
      "hello world: 746\n",
      "hello world: 747\n",
      "hello world: 748\n",
      "hello world: 749\n",
      "hello world: 750\n",
      "hello world: 751\n",
      "hello world: 752\n",
      "hello world: 753\n",
      "hello world: 754\n",
      "hello world: 755\n",
      "hello world: 756\n",
      "hello world: 757\n",
      "hello world: 758\n",
      "hello world: 759\n",
      "hello world: 760\n",
      "hello world: 761\n",
      "hello world: 762\n",
      "hello world: 763\n",
      "hello world: 764\n",
      "hello world: 765\n",
      "hello world: 766\n",
      "hello world: 767\n",
      "hello world: 768\n",
      "hello world: 769\n",
      "hello world: 770\n",
      "hello world: 771\n",
      "hello world: 772\n",
      "hello world: 773\n",
      "hello world: 774\n",
      "hello world: 775\n",
      "hello world: 776\n",
      "hello world: 777\n",
      "hello world: 778\n",
      "hello world: 779\n",
      "hello world: 780\n",
      "hello world: 781\n",
      "hello world: 782\n",
      "hello world: 783\n",
      "hello world: 784\n",
      "hello world: 785\n",
      "hello world: 786\n",
      "hello world: 787\n",
      "hello world: 788\n",
      "hello world: 789\n",
      "hello world: 790\n",
      "hello world: 791\n",
      "hello world: 792\n",
      "hello world: 793\n",
      "hello world: 794\n",
      "hello world: 795\n",
      "hello world: 796\n",
      "hello world: 797\n",
      "hello world: 798\n",
      "hello world: 799\n",
      "hello world: 800\n",
      "hello world: 801\n",
      "hello world: 802\n",
      "hello world: 803\n",
      "hello world: 804\n",
      "hello world: 805\n",
      "hello world: 806\n",
      "hello world: 807\n",
      "hello world: 808\n",
      "hello world: 809\n",
      "hello world: 810\n",
      "hello world: 811\n",
      "hello world: 812\n",
      "hello world: 813\n",
      "hello world: 814\n",
      "hello world: 815\n",
      "hello world: 816\n",
      "hello world: 817\n",
      "hello world: 818\n",
      "hello world: 819\n",
      "hello world: 820\n",
      "hello world: 821\n",
      "hello world: 822\n",
      "hello world: 823\n",
      "hello world: 824\n",
      "hello world: 825\n",
      "hello world: 826\n",
      "hello world: 827\n",
      "hello world: 828\n",
      "hello world: 829\n",
      "hello world: 830\n",
      "hello world: 831\n",
      "hello world: 832\n",
      "hello world: 833\n",
      "hello world: 834\n",
      "hello world: 835\n",
      "hello world: 836\n",
      "hello world: 837\n",
      "hello world: 838\n",
      "hello world: 839\n",
      "hello world: 840\n",
      "hello world: 841\n",
      "hello world: 842\n",
      "hello world: 843\n",
      "hello world: 844\n",
      "hello world: 845\n",
      "hello world: 846\n",
      "hello world: 847\n",
      "hello world: 848\n",
      "hello world: 849\n",
      "hello world: 850\n",
      "hello world: 851\n",
      "hello world: 852\n",
      "hello world: 853\n",
      "hello world: 854\n",
      "hello world: 855\n",
      "hello world: 856\n",
      "hello world: 857\n",
      "hello world: 858\n",
      "hello world: 859\n",
      "hello world: 860\n",
      "hello world: 861\n",
      "hello world: 862\n",
      "hello world: 863\n",
      "hello world: 864\n",
      "hello world: 865\n",
      "hello world: 866\n",
      "hello world: 867\n",
      "hello world: 868\n",
      "hello world: 869\n",
      "hello world: 870\n",
      "hello world: 871\n",
      "hello world: 872\n",
      "hello world: 873\n",
      "hello world: 874\n",
      "hello world: 875\n",
      "hello world: 876\n",
      "hello world: 877\n",
      "hello world: 878\n",
      "hello world: 879\n",
      "hello world: 880\n",
      "hello world: 881\n",
      "hello world: 882\n",
      "hello world: 883\n",
      "hello world: 884\n",
      "hello world: 885\n",
      "hello world: 886\n",
      "hello world: 887\n",
      "hello world: 888\n",
      "hello world: 889\n",
      "hello world: 890\n",
      "hello world: 891\n",
      "hello world: 892\n",
      "hello world: 893\n",
      "hello world: 894\n",
      "hello world: 895\n",
      "hello world: 896\n",
      "hello world: 897\n",
      "hello world: 898\n",
      "hello world: 899\n",
      "hello world: 900\n",
      "hello world: 901\n",
      "hello world: 902\n",
      "hello world: 903\n",
      "hello world: 904\n",
      "hello world: 905\n",
      "hello world: 906\n",
      "hello world: 907\n",
      "hello world: 908\n",
      "hello world: 909\n",
      "hello world: 910\n",
      "hello world: 911\n",
      "hello world: 912\n",
      "hello world: 913\n",
      "hello world: 914\n",
      "hello world: 915\n",
      "hello world: 916\n",
      "hello world: 917\n",
      "hello world: 918\n",
      "hello world: 919\n",
      "hello world: 920\n",
      "hello world: 921\n",
      "hello world: 922\n",
      "hello world: 923\n",
      "hello world: 924\n",
      "hello world: 925\n",
      "hello world: 926\n",
      "hello world: 927\n",
      "hello world: 928\n",
      "hello world: 929\n",
      "hello world: 930\n",
      "hello world: 931\n",
      "hello world: 932\n",
      "hello world: 933\n",
      "hello world: 934\n",
      "hello world: 935\n",
      "hello world: 936\n",
      "hello world: 937\n",
      "hello world: 938\n",
      "hello world: 939\n",
      "hello world: 940\n",
      "hello world: 941\n",
      "hello world: 942\n",
      "hello world: 943\n",
      "hello world: 944\n",
      "hello world: 945\n",
      "hello world: 946\n",
      "hello world: 947\n",
      "hello world: 948\n",
      "hello world: 949\n",
      "hello world: 950\n",
      "hello world: 951\n",
      "hello world: 952\n",
      "hello world: 953\n",
      "hello world: 954\n",
      "hello world: 955\n",
      "hello world: 956\n",
      "hello world: 957\n",
      "hello world: 958\n",
      "hello world: 959\n",
      "hello world: 960\n",
      "hello world: 961\n",
      "hello world: 962\n",
      "hello world: 963\n",
      "hello world: 964\n",
      "hello world: 965\n",
      "hello world: 966\n",
      "hello world: 967\n",
      "hello world: 968\n",
      "hello world: 969\n",
      "hello world: 970\n",
      "hello world: 971\n",
      "hello world: 972\n",
      "hello world: 973\n",
      "hello world: 974\n",
      "hello world: 975\n",
      "hello world: 976\n",
      "hello world: 977\n",
      "hello world: 978\n",
      "hello world: 979\n",
      "hello world: 980\n",
      "hello world: 981\n",
      "hello world: 982\n",
      "hello world: 983\n",
      "hello world: 984\n",
      "hello world: 985\n",
      "hello world: 986\n",
      "hello world: 987\n",
      "hello world: 988\n",
      "hello world: 989\n",
      "hello world: 990\n",
      "hello world: 991\n",
      "hello world: 992\n",
      "hello world: 993\n",
      "hello world: 994\n",
      "hello world: 995\n",
      "hello world: 996\n",
      "hello world: 997\n",
      "hello world: 998\n",
      "hello world: 999\n",
      "\n"
     ]
    }
   ],
   "source": [
    "g = open('newfile.txt', 'r')\n",
    "print g.read()\n",
    "g.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "所以，写文件时候要确保文件被正确关闭。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "os.remove('newfile.txt')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
